diff options
author | Hans Ulrich Niedermann <hun@n-dimensional.de> | 2011-01-22 15:53:21 +0100 |
---|---|---|
committer | Hans Ulrich Niedermann <hun@n-dimensional.de> | 2011-01-22 16:34:32 +0100 |
commit | 5372ed6fe3cd64d8196e3b4a2c543ee0f0f2cfca (patch) | |
tree | f32823baa05f318098323157bd1a444fcd8306e3 | |
parent | b3c9ed488bf1693bb5509cafaf457499fdf54f4c (diff) | |
download | fedora-packager-5372ed6fe3cd64d8196e3b4a2c543ee0f0f2cfca.tar.gz fedora-packager-5372ed6fe3cd64d8196e3b4a2c543ee0f0f2cfca.tar.xz fedora-packager-5372ed6fe3cd64d8196e3b4a2c543ee0f0f2cfca.zip |
local ops: wrap args in WrapArgs() object
This allows us to intercept access to args values and
do useful once-off actions, or just programmatically
define useful default values.
-rwxr-xr-x | src/fedpkg.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/fedpkg.py b/src/fedpkg.py index cacbf23..33b4e36 100755 --- a/src/fedpkg.py +++ b/src/fedpkg.py @@ -847,6 +847,23 @@ def verrel(args): print('%s-%s-%s' % (mymodule.module, mymodule.ver, mymodule.rel)) +class WrapArgs(object): + + """Wrap argparse.Namespace args to provide useful default actions + """ + + def __init__(self, args): + self.__args = args + + def __getattr__(self, name): + if name in self.__dict__: + # self-implemented attribute + return self.__dict__[name] + else: + # take attribute directly from original argparse.Namespace __args + return getattr(self.__args, name) + + def parse_cmdline(generate_manpage = False): """Parse the command line""" @@ -1261,7 +1278,7 @@ packages will be built sequentially. if not generate_manpage: # Parse the args - return parser.parse_args() + return WrapArgs(parser.parse_args()) else: # Generate the man page |