Commit 100994df authored by mathieui's avatar mathieui

Add a fallback to optparse if argparse is not found

parent 5692a027
......@@ -37,6 +37,9 @@ In order for poezio to correctly work, you need the libs SleekXMPP and
=== Dependencies ===
NOTE: If your python3 version is too old because of debian (e.g. < 3.2), you
should install the python3-argparse package if it exists, or use
pip3/virtualenvs to install it.
If you want to install SleekXMPP and dnspython by yourself, follow these
instructions. Else, go to the next section (recommended).
......
"""
Module related to the argument parsing
There is a fallback to the deprecated optparse if argparse is not found
"""
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_USAGE as SUPPRESS
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename", default=path.join(CONFIG_PATH, 'poezio.cfg'),
usage="The config file you want to use", metavar="CONFIG_FILE")
parser.add_option("-d", "--debug", dest="debug",
usage="The file where debug will be written", metavar="DEBUG_FILE")
parser.add_option("-v", "--version", dest="version",
usage=SUPPRESS, metavar="VERSION", default="0.8-dev")
(options, args) = 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-dev")
options = parser.parse_args()
return options
......@@ -15,7 +15,7 @@ DEFSECTION = "Poezio"
from configparser import RawConfigParser, NoOptionError, NoSectionError
from os import environ, makedirs, path
from shutil import copy2
from argparse import ArgumentParser, SUPPRESS
from args import parse_args
class Config(RawConfigParser):
"""
......@@ -192,14 +192,7 @@ if not path.isfile(path.join(CONFIG_PATH, 'poezio.cfg')):
copy2(path.join(path.dirname(__file__), '../data/default_config.cfg'), path.join(CONFIG_PATH, 'poezio.cfg'))
firstrun = True
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-dev")
options = parser.parse_args()
options = parse_args(CONFIG_PATH)
config = Config(options.filename)
if firstrun:
config.set('firstrun', True)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment