def main(): # merge command-line and file-specified arguments config = conf.config(__doc__, sys.argv[1:]) logger = loghelper.create(LOGGER, log_level=config.get('log.level'), log_fmt=config.get('log.format')) if config.get('log.file'): log_file = config['log.file'] logger.addHandler( loghelper.file_handler(log_file, config['log.level'], config['log.format'])) logger.debug('now logging to file') dry_run = config.get('dry-run') # either the start time is exactly specified, or else we calculate it if config.get('start'): init_time = config['start'] else: init_time = shared.get_time(base_time=config.get('base-time'), delay=config.get('delay'), round=config.get('cycles')) if config.get('end'): end_init = config['end'] init_interval = config['init_interval'] init_times = list( rrule.rrule(freq=rrule.HOURLY, interval=init_interval, dtstart=init_time, until=end_init)) else: init_times = [init_time] for init_time in init_times: # one-argument function to do initial-time substitution in strings expand = lambda s: substitute.sub_date(s, init_time=init_time) if type( s) == type("") else s # dictionary of replacements e.g. %iY : 2015 date_replacements = substitute.date_replacements(init_time=init_time) source = expand(config['source']) target = expand(config['target']) assert (_are_compatible(source, target)) _recursive_replace(source, target, date_replacements)
def main(): # merge command-line and file-specified arguments config = conf.config(__doc__, sys.argv[1:]) logger = loghelper.create(LOGGER, log_level=config.get('log.level'), log_fmt=config.get('log.format')) if config.get('log.file'): log_file = config['log.file'] logger.addHandler( loghelper.file_handler(log_file, config['log.level'], config['log.format'])) dry_run = config.get('dry-run') # either the start time is exactly specified, or else we calculate it from base time, delay and cycles if config.get('start'): init_time = config['start'] else: init_time = shared.get_time(base_time=config.get('base-time'), delay=config.get('delay'), round=config.get('cycles')) if config.get('end'): end_init = config['end'] init_interval = config['init_interval'] init_times = list( rrule.rrule(freq=rrule.HOURLY, interval=init_interval, dtstart=init_time, until=end_init)) else: init_times = [init_time] for init_time in init_times: # one-argument function to do initial-time substitution in strings expand = lambda s: substitute.sub_date(str(s), init_time=init_time) replacements = substitute.date_replacements(init_time=init_time) jobs = config['jobs'] # get an ordered list of all the ones which we will run run_jobs = [ jobs[j] for j in sorted(jobs.keys()) if jobs[j]['run'] == True ] #for key, entry in config['jobs'].items(): for entry in run_jobs: template = expand(entry['template']) target = expand(entry['target']) tm.fill_template(template, target, replacements)
def main(): # merge command-line and file-specified arguments config = conf.config(__doc__, sys.argv[1:]) logger = loghelper.create(LOGGER, log_level=config.get("log.level"), log_fmt=config.get("log.format")) if config.get("log.file"): log_file = config["log.file"] logger.addHandler(loghelper.file_handler(log_file, config["log.level"], config["log.format"])) dry_run = config.get("dry-run") # either the start time is exactly specified, or else we calculate it from base time, delay and cycles if config.get("start"): init_time = config["start"] else: init_time = shared.get_time( base_time=config.get("base-time"), delay=config.get("delay"), round=config.get("cycles") ) if config.get("end"): end_init = config["end"] init_interval = config["init_interval"] init_times = list(rrule.rrule(freq=rrule.HOURLY, interval=init_interval, dtstart=init_time, until=end_init)) else: init_times = [init_time] for init_time in init_times: # one-argument function to do initial-time substitution in strings expand = lambda s: substitute.sub_date(str(s), init_time=init_time) replacements = substitute.date_replacements(init_time=init_time) jobs = config["jobs"] # get an ordered list of all the ones which we will run run_jobs = [jobs[j] for j in sorted(jobs.keys()) if jobs[j]["run"] == True] # for key, entry in config['jobs'].items(): for entry in run_jobs: template = expand(entry["template"]) target = expand(entry["target"]) tm.fill_template(template, target, replacements)
def main(): # merge command-line and file-specified arguments config = conf.config(__doc__, sys.argv[1:]) logger = loghelper.create(LOGGER, log_level=config.get('log.level'), log_fmt=config.get('log.format')) if config.get('log.file'): log_file = config['log.file'] logger.addHandler(loghelper.file_handler(log_file, config['log.level'], config['log.format'])) logger.debug('now logging to file') dry_run = config.get('dry-run') # either the start time is exactly specified, or else we calculate it if config.get('start'): init_time = config['start'] else: init_time = shared.get_time(base_time=config.get('base-time'), delay=config.get('delay'), round=config.get('cycles')) if config.get('end'): end_init = config['end'] init_interval = config['init_interval'] init_times = list(rrule.rrule(freq=rrule.HOURLY, interval=init_interval, dtstart=init_time, until=end_init)) else: init_times = [init_time] for init_time in init_times: # one-argument function to do initial-time substitution in strings expand = lambda s : substitute.sub_date(s, init_time=init_time) if type(s)==type("") else s # dictionary of replacements e.g. %iY : 2015 date_replacements = substitute.date_replacements(init_time=init_time) source = expand(config['source']) target = expand(config['target']) assert(_are_compatible(source,target)) _recursive_replace(source, target, date_replacements)
def main(): # merge command-line and file-specified arguments config = conf.config(__doc__, sys.argv[1:]) logger = loghelper.create(LOGGER, log_level=config.get('log.level'), log_fmt=config.get('log.format')) if config.get('log.file'): log_file = config['log.file'] logger.addHandler(loghelper.file_handler(log_file, config['log.level'], config['log.format'])) jobs = config['jobs'] for key in sorted(jobs.keys()): entry = jobs[key] template = entry['template'] target = entry['target'] logger.debug("filling template %s ----> %s" % (template, target)) path,name = os.path.split(target) if not os.path.exists(path): os.makedirs(path) replacements = entry['replacements'] tm.fill_template(template,target,replacements)