def commit(*args):
    """Commit changes to the fragments repository, limited to FILENAME(s) if specified."""
    parser = argparse.ArgumentParser(prog="%s %s" % (__package__, commit.__name__), description=commit.__doc__)
    parser.add_argument('FILENAME', help="file(s) to commit", nargs="*", default=['.'])
    args = parser.parse_args(args)

    config = FragmentsConfig()

    for s, curr_path in _iterate_over_files(args.FILENAME, config, statuses='MAD'):
        key = os.path.relpath(curr_path, config.root)
        if key not in config['files']:
            yield "Could not commit '%s' because it is not being followed" % os.path.relpath(curr_path)
            continue

        if s in 'MA':
            repo_path = os.path.join(config.directory, config['files'][key])
            with _smart_open(repo_path, 'w') as repo_file:
                with _smart_open(curr_path, 'r') as curr_file:
                    repo_file.write(curr_file.read())
            os.utime(repo_path, os.stat(curr_path)[7:9])
            yield "'%s' committed" % os.path.relpath(curr_path)
        elif s == 'D':
            yield "Could not commit '%s' because it has been removed, instead revert or forget it" % os.path.relpath(curr_path)
        elif s == ' ':
            yield "Could not commit '%s' because it has not been changed" % os.path.relpath(curr_path)
def commit ( * args ) : parser = argparse . ArgumentParser ( prog = "%s %s" % ( __package__ , commit . __name__ ) , description = commit . __doc__ ) parser . add_argument ( 'FILENAME' , help = "file(s) to commit" , nargs = "*" , default = [ '.' ] ) args = parser . parse_args ( args ) config = FragmentsConfig ( ) for s , curr_path in _iterate_over_files ( args . FILENAME , config , statuses = 'MAD' ) : key = os . path . relpath ( curr_path , config . root ) if key not in config [ 'files' ] : yield "Could not commit '%s' because it is not being followed" % os . path . relpath ( curr_path ) continue if s in 'MA' : repo_path = os . path . join ( config . directory , config [ 'files' ] [ key ] ) with _smart_open ( repo_path , 'w' ) as repo_file : with _smart_open ( curr_path , 'r' ) as curr_file : repo_file . write ( curr_file . read ( ) ) os . utime ( repo_path , os . stat ( curr_path ) [ 7 : 9 ] ) yield "'%s' committed" % os . path . relpath ( curr_path ) elif s == 'D' : yield "Could not commit '%s' because it has been removed, instead revert or forget it" % os . path . relpath ( curr_path ) elif s == ' ' : yield "Could not commit '%s' because it has not been changed" % os . path . relpath ( curr_path )
Commit changes to the fragments repository, limited to FILENAME(s) if specified.