--- a/trunk/cforge/cforge/Package/CFORGE/Scripts/checkout-prj.py +++ b/trunk/cforge/cforge/Package/CFORGE/Scripts/checkout-prj.py @@ -17,18 +17,18 @@ # be passed to this command script def cforge_usage(): help = [ - ["<path to CODESYS project>", "---"] + ["<path to CODESYS project>", "---"] ] return help def get_json(url): - web_client = WebClient() - r = web_client.DownloadData(url) - j = json.loads(bytes(r).decode('utf-8')) - return j + web_client = WebClient() + r = web_client.DownloadData(url) + j = json.loads(bytes(r).decode('utf-8')) + return j - + if len(sys.argv) <= 1: print("Oh, there are no arguments. Perhaps you forgot something?") sys.exit() @@ -36,25 +36,32 @@ args = sys.argv[1].split(" ") folder = "" if len(args) == 1: - folder = args[0].strip("/").split("/")[-1] + folder = args[0].strip("/").split("/")[-1] # username, password and path are specified at the command line -if len(sys.argv) >= 3: - config['user'] = sys.argv[2] - config['pass'] = sys.argv[3] - config['folder'] = sys.argv[4] +config = dict() +if len(sys.argv)>= 3: + config['user'] = sys.argv[2] + config['pass'] = sys.argv[3] + config['folder'] = sys.argv[4] else: - config = ui.Dialog("Checkout Project", Folder=True, Credentials=True, DefaultFolder=folder) + config = ui.Dialog("Checkout Project", Folder=True, Credentials=True, DefaultFolder=folder) # iterate over all tools of the project, and checkout all SVN repositories, # excluding the CODESYS folders if config != None: - tools = get_json(base_url + '/' + sys.argv[1]) - for tool in tools['tools']: - if tool['name'] == 'svn': - details = get_json(base_url + tool['url']) - repo = tool['url'][1:-1].replace('/', ',') - url = base_svn + repo - print(url) - pysvn.svn_checkout_non_codesys(config['user'], config['pass'], url, os.path.join(config['folder'], repo)) - print('\n') + tools = get_json(base_url + '/' + sys.argv[1]) + for tool in tools['tools']: + if tool['name'] == 'svn': + repo = tool['url'][1:-1].replace('/', ',') + url = base_svn + repo + print(url) + # checkout + pysvn.svn_checkout_non_codesys(config['user'], config['pass'], url, os.path.join(config['folder'], repo)) + print('\n') + # store commit count + details = get_json(base_url + tool['url']) + f = open(os.path.join(config['folder'], repo + '.commit_count'), "w") + if f: + f.write(str(details['commit_count'])) + f.close()