summaryrefslogtreecommitdiff
path: root/src/args.py
blob: 6b0108f025d2a4c351c94a610c7480af35d94602 (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
"""
Module related to the argument parsing

There is a fallback to the deprecated optparse if argparse is not found
"""
from gettext import gettext as _
from os import path

def parse_args(CONFIG_PATH=''):
    """
    Parse the arguments from the command line
    """
    try:
        from argparse import ArgumentParser, SUPPRESS
    except ImportError:
        from optparse import OptionParser
        from optparse import SUPPRESS_HELP as SUPPRESS
        parser = OptionParser()
        parser.add_option("-f", "--file", dest="filename",
                          default=path.join(CONFIG_PATH, 'poezio.cfg'),
                          help=_("The config file you want to use"),
                          metavar="CONFIG_FILE")
        parser.add_option("-d", "--debug", dest="debug",
                          help=_("The file where debug will be written"),
                          metavar="DEBUG_FILE")
        parser.add_option("-v", "--version", dest="version",
                          help=SUPPRESS, metavar="VERSION",
                          default="0.8.3-dev")
        (options, __) = parser.parse_args()
    else:
        parser = ArgumentParser()
        parser.add_argument("-f", "--file", dest="filename",
                            default=path.join(CONFIG_PATH, 'poezio.cfg'),
                            help=_("The config file you want to use"),
                            metavar="CONFIG_FILE")
        parser.add_argument("-d", "--debug", dest="debug",
                            help=_("The file where debug will be written"),
                            metavar="DEBUG_FILE")
        parser.add_argument("-v", "--version", dest="version",
                            help=SUPPRESS, metavar="VERSION",
                            default="0.8.3-dev")
        options = parser.parse_args()
    return options