Zion Boggan zionboggan.com ↗
33 lines · python
History for this file →
1
from __future__ import annotations
2
 
3
import argparse
4
import json
5
import sys
6
 
7
from cti.config import load_config
8
from cti.pipeline import run
9
 
10
 
11
def main(argv=None):
12
    parser = argparse.ArgumentParser(prog="cti", description="CTI detection automation")
13
    parser.add_argument("command", choices=["run", "serve"])
14
    parser.add_argument("-c", "--config", default=None)
15
    parser.add_argument("--host", default="0.0.0.0")
16
    parser.add_argument("--port", type=int, default=8080)
17
    args = parser.parse_args(argv)
18
 
19
    config = load_config(args.config)
20
 
21
    if args.command == "run":
22
        result = run(config)
23
        print(json.dumps(result, indent=2))
24
        return 0
25
 
26
    from cti.web import create_app
27
 
28
    create_app(config).run(host=args.host, port=args.port)
29
    return 0
30
 
31
 
32
if __name__ == "__main__":
33
    sys.exit(main())