Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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)