56 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/python3
 | |
| # pylint: disable=locally-disabled, line-too-long, unused-argument, unused-variable, pointless-string-statement, too-many-locals, missing-docstring, too-many-statements, invalid-name, wrong-import-position, too-many-arguments, too-many-branches
 | |
| # Copyright Novatek Microelectronics Corp. 2016.  All rights reserved.
 | |
| 
 | |
| """Implements a test item for script """
 | |
| import os
 | |
| import sys
 | |
| import re
 | |
| 
 | |
| def repo_setup(repo_dir):
 | |
|     file_path = os.path.join(repo_dir, "manifest.xml")
 | |
|     re_repo = re.compile(r'<project groups=".*"\s*name=.*\s*path="(.*)"\s*revision="(.*)"')
 | |
|     with open(file_path, 'rt',encoding="Big5", errors='ignore') as fin:
 | |
|         line = fin.readline()
 | |
|         while line:
 | |
|             line = line.encode("ascii", errors="ignore").decode("ascii", errors="ignore")
 | |
|             match = re.search(re_repo, line)
 | |
|             if not match:
 | |
|                 line = fin.readline()
 | |
|                 continue
 | |
|             repo_name = match.group(1)
 | |
|             branch_name = match.group(2)
 | |
|             if branch_name == "":
 | |
|                 branch_name = "master"
 | |
|             #print("{}, {}".format(repo_name, branch_name))
 | |
|             git_dir = os.path.join(repo_dir, "../{}".format(repo_name))
 | |
|             cmd = \
 | |
|                 "pushd {}; ".format(git_dir) + \
 | |
|                 "git checkout {}; ".format(branch_name) + \
 | |
|                 "popd"
 | |
|             #print(cmd)
 | |
|             os.system(cmd)
 | |
|             line = fin.readline()
 | |
|     return 0
 | |
| 
 | |
| def main(argv):
 | |
|     repo_dir = sys.argv[1]
 | |
|     if not os.path.isdir(repo_dir):
 | |
|         print(".repo not exist: {}".format(repo_dir))
 | |
|         return -1
 | |
|     repo_setup(repo_dir)
 | |
|     return 0
 | |
| 
 | |
| # ============================================================================================
 | |
| # DO NOT EDIT FOLLOWING CODES
 | |
| # ============================================================================================
 | |
| if __name__ == "__main__":
 | |
|     def local_run():
 | |
|         if len (sys.argv) != 2:
 | |
|             print("Usage: repo_setup.py [path_to .repo]");
 | |
|             return -1
 | |
|         err = main(sys.argv)
 | |
|         return err
 | |
|     sys.exit(local_run())
 | |
| # ============================================================================================
 | 
