forked from open-contracting/kingfisher-process
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathocdskingfisher-process-cli
55 lines (38 loc) · 1.61 KB
/
ocdskingfisher-process-cli
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
52
53
54
55
#!/usr/bin/env python
import argparse
import json
import logging
import logging.config
import os
import sentry_sdk
import ocdskingfisherprocess.cli.util
import ocdskingfisherprocess.config
import ocdskingfisherprocess.signals.signals
from ocdskingfisherprocess.database import DataBase
def main():
config = ocdskingfisherprocess.config.Config()
config.load_user_config()
if config.sentry_dsn:
sentry_sdk.init(config.sentry_dsn)
database = DataBase(config)
ocdskingfisherprocess.signals.signals.setup_signals(config, database)
logging_config_file_full_path = os.path.expanduser('~/.config/ocdskingfisher-process/logging.json')
if os.path.isfile(logging_config_file_full_path):
with open(logging_config_file_full_path) as f:
logging.config.dictConfig(json.load(f))
logger = logging.getLogger('ocdskingfisher.cli')
parser = argparse.ArgumentParser()
parser.add_argument("--quiet", help="remove output",
action="store_true")
subparsers = parser.add_subparsers(dest='subcommand')
commands = ocdskingfisherprocess.cli.util.gather_cli_commands_instances(config=config, database=database)
for command in commands.values():
command.configure_subparser(subparsers.add_parser(command.command))
args = parser.parse_args()
if args.subcommand and args.subcommand in commands.keys():
logger.info("Running CLI command " + args.subcommand + " " + repr(args))
commands[args.subcommand].run_command(args)
else:
print("Please select a subcommand (try --help)")
if __name__ == '__main__':
main()