summaryrefslogtreecommitdiff
path: root/src/xpit_/xpit.py
blob: f6eefd0ab0d24bdd30aae62c703ded72aacba4b6 (plain)
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
from sys import argv, stdout
from . import args_helpers, init, create, list_

help_text = """\
xpit - cross-platform issue tracker
Usage: xpit <COMMAND> [options]
<COMMAND>:
    init:
        Initialize issue tracker in current directory.
    create:
        Create new issue or reply.
    list:
        List issues.
Options:
    -h, --help
        Print this help text. `xpit <COMMAND> -h` for help with specific command.
"""

class Args:
    def __init__(self) -> None:
        pass

    def parse(self) -> bool:
        flag_value_map = {
            "help|h": 0,
        }
        res = args_helpers.parse_generic(flag_value_map, argv, 1)
        if res is None:
            return False
        if "help" in res:
            stdout.write(help_text)
            return False

        return True
args = Args()

def main() -> int:
    if len(argv) <= 1:
        stdout.write(help_text)
        return 1

    elif argv[1] == "init":
        return init.main()
    elif argv[1] == "create":
        return create.main()
    elif argv[1] == "list":
        return list_.main()
    else:
        if not args.parse():
            return 1

    return 0