示例#1
0
def main():
    """CLI interface main
    """
    # setup logging
    logging.basicConfig(lvl=logging.DEBUG)

    c = load_config()

    l = logging.getLogger("screpper")
    if c.logging_level == "DEBUG":
        l.setLevel(logging.DEBUG)

    cmnds = {
        "help": (lambda x: show_help(x, cmnds), """help - show help information"""),
        "create": (create_repo, """create <repository name> - create a repository"""),
        "list": (list_repos, """list - list repositories"""),
        "gc": (gc_repo, """gc <repository name> - run git gc in repository"""),
        "setc": (set_config, """setc <key> <value> [<key> <value>] - set config keys"""),
        "getc": (get_config, """getc [<key> ...] - get keys from configuration (or all if no keys are provided"""),
    }
    args = sys.argv[1:]

    if len(args) == 0 or args[0] not in cmnds:
        print "No or unknown command"
        show_help(args, cmnds)
        raise SystemExit(1)

    try:
        cmnds[args[0]][0](args)
    except InvalidParameters, e:
        print str(e)
        show_help(args, cmnds, e.failed_cmd)
示例#2
0
def create_repo(args):
    """create repository
    
    Arguments:
    - `args`:
    """
    l = logging.getLogger("screpper.cli")

    c = load_config()

    l.info("create repository")

    name, path = __extract_repo_name_path(args)

    repo = create_bare_repo(path)
    # run hooks
    l.info("running user hooks for repot at %s" % (path))
    run_parts(c.hooks_root, env={"REPO_PATH": os.path.abspath(path)})
示例#3
0
def __extract_repo_name_path(args):
    """
    extract repository name and path from args
    Arguments:
    - `args`: list of arguments, 0 is always command name
    """
    l = logging.getLogger("screpper.cli")
    c = load_config()

    # command for which this function is called comes first
    cmd = args[0]
    if len(args) < 2:
        raise InvalidParameters("repository name not provided", cmd)
    name = args[1]
    if not name.endswith(".git"):
        l.warning("rename repository from %s to %s" % (name, name + ".git"))
        name += ".git"

    path = os.path.join(c.repository_root, name)
    return name, path