summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Ulrich Niedermann <hun@n-dimensional.de>2011-01-22 15:53:21 +0100
committerHans Ulrich Niedermann <hun@n-dimensional.de>2011-01-22 16:34:32 +0100
commit5372ed6fe3cd64d8196e3b4a2c543ee0f0f2cfca (patch)
treef32823baa05f318098323157bd1a444fcd8306e3
parentb3c9ed488bf1693bb5509cafaf457499fdf54f4c (diff)
downloadfedora-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-xsrc/fedpkg.py19
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