--- a/trunk/cforge/cforge/Package/CFORGE/Scripts/checkout-prj.py +++ b/trunk/cforge/cforge/Package/CFORGE/Scripts/checkout-prj.py @@ -16,52 +16,56 @@ # here you can return an array of all possible arguments and options that can # be passed to this command script def cforge_usage(): - help = [ - ["<path to CODESYS project>", "---"] - ] + help = [ + ["<path to CODESYS project>", "---"] + ] - return help + 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() + print("Oh, there are no arguments. Perhaps you forgot something?") + sys.exit() 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 config = dict() if len(sys.argv)>= 3: - config['user'] = sys.argv[2] - config['pass'] = sys.argv[3] - config['folder'] = sys.argv[4] + 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': - 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() + 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_all(config['user'], config['pass'], url, os.path.join(config['folder'], repo)) + for root, dirs, files in os.walk(config['folder']): + for file in files: + if file == "meta.profile": + pysvn.svn_remove_local(root) + 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()