[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kajongg/sid] src: Option --ruleset now accepts abbreviations
From: Wolfgang Rohdewald <wolfgang () rohdewald ! de>
Date: 2013-10-31 21:21:03
Message-ID: E1Vbzfr-0002lj-AW () scm ! kde ! org
[Download RAW message or body]
Git commit 209feee84b568db739cef129090bb3761e643e58 by Wolfgang Rohdewald.
Committed on 29/10/2013 at 07:49.
Pushed by wrohdewald into branch 'sid'.
Option --ruleset now accepts abbreviations
which may be any part of the ruleset name (no regex). Check for ambiguity
M +8 -6 src/kajongg.py
M +10 -4 src/kajonggtest.py
http://commits.kde.org/kajongg/209feee84b568db739cef129090bb3761e643e58
diff --git a/src/kajongg.py b/src/kajongg.py
index f296946..738166f 100755
--- a/src/kajongg.py
+++ b/src/kajongg.py
@@ -48,13 +48,15 @@ def initRulesets():
DBHandle.default = None
sys.exit(0)
else:
- for ruleset in rulesets:
- if ruleset.name == Options.rulesetName:
- Options.ruleset = ruleset
- break
- else:
+ matches = list(x for x in rulesets if Options.rulesetName in x.name)
+ if len(matches) != 1:
+ if len(matches) == 0:
+ msg = 'Ruleset %s is unknown' % Options.rulesetName
+ else:
+ msg = 'Ruleset %s is ambiguous: %s' % (Options.rulesetName, \
list(x.name for x in matches)) DBHandle.default = None
- raise SystemExit('Ruleset %s is unknown' % Options.rulesetName)
+ raise SystemExit(msg)
+ Options.ruleset = matches[0]
def defineOptions():
"""this is the KDE way. Compare with kajonggserver.py"""
diff --git a/src/kajonggtest.py b/src/kajonggtest.py
index 77bd5de..3951141 100755
--- a/src/kajonggtest.py
+++ b/src/kajonggtest.py
@@ -268,10 +268,16 @@ def improve_options(options):
cmd = ['{src}/kajongg.py'.format(src=srcDir()), '--rulesets=']
knownRulesets = subprocess.Popen(cmd, \
stdout=subprocess.PIPE).communicate()[0].split('\n') wantedRulesets = \
options.rulesets.split(',')
- if any(x not in knownRulesets for x in wantedRulesets):
- for ruleset in wantedRulesets:
- if ruleset not in knownRulesets:
- print 'ruleset', ruleset, 'is not known'
+ wrong = False
+ for ruleset in wantedRulesets:
+ matches = list(x for x in knownRulesets if ruleset in x)
+ if len(matches) == 0:
+ print 'ruleset', ruleset, 'is not known',
+ wrong = True
+ elif len(matches) > 1:
+ print 'ruleset', ruleset, 'is ambiguous:', matches
+ wrong = True
+ if wrong:
sys.exit(1)
return options
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic