#!/Library/Frameworks/Python.framework/Versions/3.4/bin/python3 __author__ = 'sknop' import sys import os import os.path from collections import OrderedDict # expect # P4PORT # P4ROOT # P4CLIENT # P4CLIENT root P4CONFIG='.p4' P4ROOT='.' def update_config(filename, params): read_params = OrderedDict() with open(filename) as f: # understand and preserve comments? for line in f: (k,v) = line.split('=') read_params[k] = v read_params.update(params) create_config(filename, read_params) def create_config(filename, params): with open(filename, "w") as f: for (k,v) in params.items(): print("{}={}".format(k,v),file=f) def process_config(params): p4config = params.pop('P4CONFIG', P4CONFIG) p4root = params.pop('P4ROOT', P4ROOT) filename = os.path.join(p4root, p4config) if os.path.exists(filename): update_config(filename, params) else: # ensure the directory exists os.makedirs(p4root, exist_ok=True) create_config(filename, params) if __name__ == '__main__': params = OrderedDict((a.split('=') for a in sys.argv[1:])) print(params) process_config(params)