Example #1
0
def main_redo_ifcreate(redo_flavour, targets):
    import os
    import vars, state
    from log import err

    targets = state.fix_chdir(targets)
    f = state.File(vars.TARGET)
    for t in targets:
        if os.path.exists(t):
            err('%s: error: %r already exists\n', redo_flavour, t)
            return 1
        else:
            f.add_dep(state.File(name=t))
Example #2
0
def main_redo_ifchange(redo_flavour, targets):
    import ifchange, state, vars, builder
    from log import debug2

    if vars.TARGET:
        f = state.File(name=vars.TARGET)
        debug2('TARGET: %r %r %r\n', vars.STARTDIR, vars.PWD, vars.TARGET)
    else:
        f = None
        debug2('%s: no target - not adding depends.\n', redo_flavour)

    targets = state.fix_chdir(targets)
    return builder.main(targets, ifchange.should_build, f, re_do=False)
Example #3
0
def main_redo_delegate(redo_flavour, targets):
    import builder, state, vars
    from log import debug2

    if vars.TARGET:
        f = state.File(name=vars.TARGET)
        debug2('TARGET: %r %r %r\n', vars.STARTDIR, vars.PWD, vars.TARGET)
    else:
        f = None
        debug2('%S: no target - not delegating.\n', redo_flavour)

    targets = state.fix_chdir(targets)
    return builder.main(targets, delegate=f)
Example #4
0
def main_redo_stamp(redo_flavour, targets):
    import os
    import vars, state
    
    if len(targets) > 1:
        err('%s: no arguments expected.\n', redo_flavour)
        return 1

    if os.isatty(0):
        err('%s: you must provide the data to stamp on stdin\n', redo_flavour)
        return 1

    # hashlib is only available in python 2.5 or higher, but the 'sha' module
    # produces a DeprecationWarning in python 2.6 or higher.  We want to support
    # python 2.4 and above without any stupid warnings, so let's try using hashlib
    # first, and downgrade if it fails.
    try:
        import hashlib
    except ImportError:
        import sha
        sh = sha.sha()
    else:
        sh = hashlib.sha1()

    while 1:
        b = os.read(0, 4096)
        sh.update(b)
        if not b: break

    csum = sh.hexdigest()

    if not vars.TARGET:
        return 0

    state.fix_chdir([])
    f = state.File(vars.TARGET)
    f._add('%s .' % csum)
Example #5
0
File: main.py Project: mildred/redo
def main_redo_dofile(redo_flavour, targets):
    import os.path
    import state, builder
    
    res = 0
    
    targets = state.fix_chdir(targets)
    for target in targets:
        f = state.File(name=target)
        dodir,dofile,basedir,basename,ext = builder._find_do_file(f)
        if dodir:
            print os.path.join(dodir, dofile)
        else:
            res = res + 1
    
    return res
Example #6
0
def main_redo_always(redo_flavour, targets):
    import vars, state

    state.fix_chdir([])
    f = state.File(vars.TARGET)
    f.add_dep(state.File(name=state.ALWAYS))
Example #7
0
def main_redo_log(redo_flavour, targets):
    import state, logger

    targets = state.fix_chdir(targets)
    return logger.main(targets, toplevel=True)
Example #8
0
def main_redo(redo_flavour, targets):
    import builder, state

    targets = state.fix_chdir(targets)
    return builder.main(targets)