From 71715c049145a074b0f2b8d90c8c8c47830323c3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Isma=C3=ABl=20Bouya?= Date: Thu, 14 Jul 2016 16:04:32 +0200 Subject: [PATCH] Use argparse for parser --- helpers/__init__.py | 47 ++++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/helpers/__init__.py b/helpers/__init__.py index 2131c2a..3b97f2f 100644 --- a/helpers/__init__.py +++ b/helpers/__init__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +import argparse import sys import os @@ -17,21 +18,37 @@ def path(): return path + "/../" def parse_args(): - for arg in sys.argv: - if arg[0:2] == "-c": - sys.argv.remove(arg) - config.yml_file = arg[2:] - - if arg == "-v": - sys.argv.remove(arg) - - if getattr(sys, 'frozen', False): - f = open(path() + ".pyinstaller_commit", "r") - print(f.read(), end="") - f.close() - else: - print("option '-v' can only be used in bundled package") - sys.exit() + argv = sys.argv[1:] + sys.argv = sys.argv[:1] + if "--" in argv: + index = argv.index("--") + kivy_args = argv[index+1:] + argv = argv[:index] + + sys.argv.extend(kivy_args) + + parser = argparse.ArgumentParser(description="A Music Sampler application.") + parser.add_argument("-c", "--config", + default="config.yml", + required=False, + help="Config file to load") + parser.add_argument("-V", "--version", + action="version", + help="Displays the current version and exits. Only use in bundled package", + version=show_version()) + parser.add_argument('--', + dest="args", + help="Kivy arguments. All arguments after this are interpreted by Kivy. Pass \"-- --help\" to get Kivy's usage.") + args = parser.parse_args(argv) + + config.yml_file = args.config + +def show_version(): + if getattr(sys, 'frozen', False): + with open(path() + ".pyinstaller_commit", "r") as f: + return f.read() + else: + return "option '-v' can only be used in bundled package" def yml_file(): return config.yml_file -- 2.41.0