File: git.py

package info (click to toggle)
python-docopt-ng 0.9.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 396 kB
  • sloc: python: 1,821; makefile: 3
file content (51 lines) | stat: -rwxr-xr-x 1,832 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/usr/bin/env python3
"""
usage: git [--version] [--exec-path=<path>] [--html-path]
           [-p|--paginate|--no-pager] [--no-replace-objects]
           [--bare] [--git-dir=<path>] [--work-tree=<path>]
           [-c <name>=<value>] [--help]
           <command> [<args>...]

options:
   -c <name=value>
   -h, --help
   -p, --paginate

The most commonly used git commands are:
   add        Add file contents to the index
   branch     List, create, or delete branches
   checkout   Checkout a branch or paths to the working tree
   clone      Clone a repository into a new directory
   commit     Record changes to the repository
   push       Update remote refs along with associated objects
   remote     Manage set of tracked repositories

See 'git help <command>' for more information on a specific command.

"""
from subprocess import call

from docopt import docopt

if __name__ == "__main__":
    args = docopt(__doc__, version="git version 1.7.4.4", options_first=True)
    print("global arguments:")
    print(args)
    print("command arguments:")

    argv = [args["<command>"]] + args["<args>"]
    if args["<command>"] == "add":
        # In case subcommand is implemented as python module:
        import git_add

        print(docopt(git_add.__doc__, argv=argv))
    elif args["<command>"] == "branch":
        # In case subcommand is a script in some other programming language:
        exit(call(["python", "git_branch.py"] + argv))
    elif args["<command>"] in "checkout clone commit push remote".split():
        # For the rest we'll just keep DRY:
        exit(call(["python", "git_%s.py" % args["<command>"]] + argv))
    elif args["<command>"] in ["help", None]:
        exit(call(["python", "git.py", "--help"]))
    else:
        exit("%r is not a git.py command. See 'git help'." % args["<command>"])