Less indirection for save template callback
[stgit.git] / stg-build
blob3c4bd072a29b3581c698dce491b3a23c9c4101a3
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 # -*- python -*-
4 from __future__ import (
5 absolute_import,
6 division,
7 print_function,
8 unicode_literals,
11 import optparse
12 import os
13 import sys
15 from stgit import argparse, commands
16 from stgit.completion.bash import write_bash_completion
17 from stgit.completion.fish import write_fish_completion
18 import stgit.main
21 def main():
22 op = optparse.OptionParser()
23 op.add_option(
24 '--asciidoc',
25 metavar='CMD',
26 help='Print asciidoc documentation for a command',
28 op.add_option(
29 '--commands',
30 action='store_true',
31 help='Print list of all stg subcommands',
33 op.add_option(
34 '--cmd-list', action='store_true', help='Print asciidoc command list'
36 op.add_option(
37 '--py-cmd-list', action='store_true', help='Write Python command list'
39 op.add_option(
40 '--bash-completion',
41 action='store_true',
42 help='Write bash completion code',
44 op.add_option(
45 '--fish-completion',
46 action='store_true',
47 help='Write fish completion code',
49 options, args = op.parse_args()
50 if args:
51 op.error('Wrong number of arguments')
52 if options.asciidoc:
53 argparse.write_asciidoc(stgit.main.commands[options.asciidoc],
54 sys.stdout)
55 elif options.commands:
56 for cmd, _, _, _ in commands.get_commands(allow_cached=False):
57 print(cmd)
58 elif options.cmd_list:
59 commands.asciidoc_command_list(
60 commands.get_commands(allow_cached=False), sys.stdout
62 elif options.py_cmd_list:
63 commands.py_commands(
64 commands.get_commands(allow_cached=False), sys.stdout
66 elif options.bash_completion:
67 write_bash_completion(sys.stdout)
68 elif options.fish_completion:
69 write_fish_completion(sys.stdout)
70 else:
71 op.error('No command')
74 if __name__ == '__main__':
75 if os.environ.get('COVERAGE_PROCESS_START'):
76 import coverage
78 coverage.process_startup()
80 main()