Preserve picked patch name when possible
[stgit.git] / build.py
blob160ec19fd17f3a00164ffad5744681dcea2ffbdf
1 #!/usr/bin/env python3
2 import optparse
3 import os
4 import sys
6 import stgit.main
7 from stgit import argparse, commands, get_version
8 from stgit.completion.bash import write_bash_completion
9 from stgit.completion.fish import write_fish_completion
12 def main():
13 op = optparse.OptionParser()
14 op.add_option(
15 '--stgit-version',
16 action='store_true',
17 help='Print StGit version',
19 op.add_option(
20 '--asciidoc',
21 metavar='CMD',
22 help='Print asciidoc documentation for a command',
24 op.add_option(
25 '--commands',
26 action='store_true',
27 help='Print list of all stg subcommands',
29 op.add_option(
30 '--cmd-list',
31 action='store_true',
32 help='Print asciidoc command list',
34 op.add_option(
35 '--py-cmd-list',
36 action='store_true',
37 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.stgit_version:
53 print(get_version())
54 elif options.asciidoc:
55 argparse.write_asciidoc(stgit.main.commands[options.asciidoc], sys.stdout)
56 elif options.commands:
57 for cmd, _, _, _ in commands.get_commands(allow_cached=False):
58 print(cmd)
59 elif options.cmd_list:
60 commands.asciidoc_command_list(
61 commands.get_commands(allow_cached=False), sys.stdout
63 elif options.py_cmd_list:
64 commands.write_cmdlist_py(sys.stdout)
65 elif options.bash_completion:
66 write_bash_completion(sys.stdout)
67 elif options.fish_completion:
68 write_fish_completion(sys.stdout)
69 else:
70 op.error('No command')
73 if __name__ == '__main__':
74 if os.environ.get('COVERAGE_PROCESS_START'):
75 import coverage
77 cov = coverage.process_startup()
78 cov.switch_context('build')
80 main()