aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Harder <radhermit@gmail.com>2015-12-05 13:32:30 -0500
committerTim Harder <radhermit@gmail.com>2015-12-05 13:32:30 -0500
commit14d7aee086003a4668d32ddeee22a2879087ee5b (patch)
tree230837dbf593a19c5bd3bd3f85944e13bb54de18
parentpmerge: move StoreTarget to commandline module (diff)
downloadpkgcore-14d7aee086003a4668d32ddeee22a2879087ee5b.tar.gz
pkgcore-14d7aee086003a4668d32ddeee22a2879087ee5b.tar.bz2
pkgcore-14d7aee086003a4668d32ddeee22a2879087ee5b.zip
commandline: StoreTarget now optionally accepts @pkgset arguments
Mostly for certain cases where we don't want to accept such arguments.
-rw-r--r--pkgcore/util/commandline.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/pkgcore/util/commandline.py b/pkgcore/util/commandline.py
index 2b1be7d06..10539f8da 100644
--- a/pkgcore/util/commandline.py
+++ b/pkgcore/util/commandline.py
@@ -88,14 +88,19 @@ class ExtendCommaDelimited(argparse._AppendAction):
class StoreTarget(argparse._AppendAction):
- """Parse extended package atom syntax and set arguments."""
+ """Parse extended package atom syntax and optionally set arguments."""
+
+ def __init__(self, sets=True, *args, **kwargs):
+ super(StoreTarget, self).__init__(*args, **kwargs)
+ self.sets = sets
def __call__(self, parser, namespace, values, option_string=None):
- namespace.sets = []
+ if self.sets:
+ namespace.sets = []
if isinstance(values, basestring):
values = [values]
for token in values:
- if token.startswith('@'):
+ if self.sets and token.startswith('@'):
namespace.sets.append(token[1:])
else:
try: