def main(): # parse arguments args = parse_command_line(sys.argv[1:]) try: manifest = Manifest(args.manifest) manifest.validate_manifest() except KeyError as error: print "Failed to create a Manifest instance for the manifest file {0} \nERROR:\n{1}"\ .format(args.manifest, error.message) sys.exit(1) if args.publish: if args.git_credential: repo_operator = RepoOperator(args.git_credential) else: print "Error occurs when get crendtail in update submodule" sys.exit(1) else: repo_operator = RepoOperator(args.git_credential) if os.path.isdir(args.build_dir): print args.build_dir for filename in os.listdir(args.build_dir): try: repo_dir = os.path.join(args.build_dir, filename) repo_operator.submodule_init(repo_dir) repo_operator.submodule_update(repo_dir) submodules_list = repo_operator.get_current_submodule(repo_dir) if len(submodules_list) == 0: continue for key in submodules_list: commit_id = get_manifest_commit_id(key, manifest) if commit_id != None: sub_dir = repo_dir + "/" + key repo_operator.checkout_to_commit(sub_dir, commit_id) if args.publish: print "start to publish update submodule in {0}".format( repo_dir) commit_message = "update submodule for new commit {0}".format( args.version) repo_operator.push_repo_changes(repo_dir, commit_message) except Exception, e: print "Failed to update submodule of {0} due to {1}".format( filename, e) sys.exit(1)
def main(): # parse arguments args = parse_command_line(sys.argv[1:]) try: manifest = Manifest(args.manifest) manifest.validate_manifest() except KeyError as error: print "Failed to create a Manifest instance for the manifest file {0} \nERROR:\n{1}"\ .format(args.manifest, error.message) sys.exit(1) if args.publish: if args.git_credential: repo_operator = RepoOperator(args.git_credential) else: print "Error occurs when get crendtail in update submodule" sys.exit(1) else: repo_operator = RepoOperator(args.git_credential) if os.path.isdir(args.build_dir): print args.build_dir for filename in os.listdir(args.build_dir): try: repo_dir = os.path.join(args.build_dir, filename) repo_operator.submodule_init(repo_dir) repo_operator.submodule_update(repo_dir) submodules_list = repo_operator.get_current_submodule(repo_dir) if len(submodules_list)==0: continue; for key in submodules_list: commit_id = get_manifest_commit_id(key,manifest) if commit_id != None: sub_dir = repo_dir+"/"+key repo_operator.checkout_to_commit(sub_dir,commit_id) if args.publish: print "start to publish update submodule in {0}".format(repo_dir) commit_message = "update submodule for new commit {0}".format(args.version) repo_operator.push_repo_changes(repo_dir, commit_message) except Exception,e: print "Failed to update submodule of {0} due to {1}".format(filename, e) sys.exit(1)