diff options
Diffstat (limited to 'scripts/lib')
-rw-r--r-- | scripts/lib/wic/plugin.py | 3 | ||||
-rw-r--r-- | scripts/lib/wic/utils/cmdln.py | 57 | ||||
-rw-r--r-- | scripts/lib/wic/utils/runner.py | 3 |
3 files changed, 42 insertions, 21 deletions
diff --git a/scripts/lib/wic/plugin.py b/scripts/lib/wic/plugin.py index d714b6d7a9..e901f807ad 100644 --- a/scripts/lib/wic/plugin.py +++ b/scripts/lib/wic/plugin.py | |||
@@ -82,7 +82,8 @@ class PluginMgr(object): | |||
82 | 82 | ||
83 | def _load_all(self): | 83 | def _load_all(self): |
84 | for (pdir, loaded) in self.plugin_dirs.iteritems(): | 84 | for (pdir, loaded) in self.plugin_dirs.iteritems(): |
85 | if loaded: continue | 85 | if loaded: |
86 | continue | ||
86 | 87 | ||
87 | sys.path.insert(0, pdir) | 88 | sys.path.insert(0, pdir) |
88 | for mod in [x[:-3] for x in os.listdir(pdir) if x.endswith(".py")]: | 89 | for mod in [x[:-3] for x in os.listdir(pdir) if x.endswith(".py")]: |
diff --git a/scripts/lib/wic/utils/cmdln.py b/scripts/lib/wic/utils/cmdln.py index d8f1c051ab..47654b934f 100644 --- a/scripts/lib/wic/utils/cmdln.py +++ b/scripts/lib/wic/utils/cmdln.py | |||
@@ -443,7 +443,8 @@ class RawCmdln(cmd.Cmd): | |||
443 | elif line[0] == '?': | 443 | elif line[0] == '?': |
444 | line = 'help ' + line[1:] | 444 | line = 'help ' + line[1:] |
445 | i, n = 0, len(line) | 445 | i, n = 0, len(line) |
446 | while i < n and line[i] in self.identchars: i = i+1 | 446 | while i < n and line[i] in self.identchars: |
447 | i = i+1 | ||
447 | cmd, arg = line[:i], line[i:].strip() | 448 | cmd, arg = line[:i], line[i:].strip() |
448 | return cmd, arg, line | 449 | return cmd, arg, line |
449 | 450 | ||
@@ -499,8 +500,10 @@ class RawCmdln(cmd.Cmd): | |||
499 | doc = self.__class__.__doc__ # try class docstring | 500 | doc = self.__class__.__doc__ # try class docstring |
500 | if doc is None: | 501 | if doc is None: |
501 | # Try to provide some reasonable useful default help. | 502 | # Try to provide some reasonable useful default help. |
502 | if self.cmdlooping: prefix = "" | 503 | if self.cmdlooping: |
503 | else: prefix = self.name+' ' | 504 | prefix = "" |
505 | else: | ||
506 | prefix = self.name+' ' | ||
504 | doc = """Usage: | 507 | doc = """Usage: |
505 | %sCOMMAND [ARGS...] | 508 | %sCOMMAND [ARGS...] |
506 | %shelp [COMMAND] | 509 | %shelp [COMMAND] |
@@ -629,7 +632,8 @@ class RawCmdln(cmd.Cmd): | |||
629 | token2canonical = self._get_canonical_map() | 632 | token2canonical = self._get_canonical_map() |
630 | aliases = {} | 633 | aliases = {} |
631 | for token, cmdname in token2canonical.items(): | 634 | for token, cmdname in token2canonical.items(): |
632 | if token == cmdname: continue | 635 | if token == cmdname: |
636 | continue | ||
633 | aliases.setdefault(cmdname, []).append(token) | 637 | aliases.setdefault(cmdname, []).append(token) |
634 | 638 | ||
635 | # Get the list of (non-hidden) commands and their | 639 | # Get the list of (non-hidden) commands and their |
@@ -697,7 +701,8 @@ class RawCmdln(cmd.Cmd): | |||
697 | helpnames = {} | 701 | helpnames = {} |
698 | token2cmdname = self._get_canonical_map() | 702 | token2cmdname = self._get_canonical_map() |
699 | for attrname, attr in self._gen_names_and_attrs(): | 703 | for attrname, attr in self._gen_names_and_attrs(): |
700 | if not attrname.startswith("help_"): continue | 704 | if not attrname.startswith("help_"): |
705 | continue | ||
701 | helpname = attrname[5:] | 706 | helpname = attrname[5:] |
702 | if helpname not in token2cmdname: | 707 | if helpname not in token2cmdname: |
703 | helpnames[helpname] = attr | 708 | helpnames[helpname] = attr |
@@ -757,8 +762,10 @@ class RawCmdln(cmd.Cmd): | |||
757 | 762 | ||
758 | # Adjust argcount for possible *args and **kwargs arguments. | 763 | # Adjust argcount for possible *args and **kwargs arguments. |
759 | argcount = co_argcount | 764 | argcount = co_argcount |
760 | if co_flags & CO_FLAGS_ARGS: argcount += 1 | 765 | if co_flags & CO_FLAGS_ARGS: |
761 | if co_flags & CO_FLAGS_KWARGS: argcount += 1 | 766 | argcount += 1 |
767 | if co_flags & CO_FLAGS_KWARGS: | ||
768 | argcount += 1 | ||
762 | 769 | ||
763 | # Determine the usage string. | 770 | # Determine the usage string. |
764 | usage = "%s %s" % (self.name, cmdname) | 771 | usage = "%s %s" % (self.name, cmdname) |
@@ -838,8 +845,10 @@ class RawCmdln(cmd.Cmd): | |||
838 | token2canonical = {} | 845 | token2canonical = {} |
839 | cmd2funcname = {} # use a dict to strip duplicates | 846 | cmd2funcname = {} # use a dict to strip duplicates |
840 | for attr in self.get_names(): | 847 | for attr in self.get_names(): |
841 | if attr.startswith("do_"): cmdname = attr[3:] | 848 | if attr.startswith("do_"): |
842 | elif attr.startswith("_do_"): cmdname = attr[4:] | 849 | cmdname = attr[3:] |
850 | elif attr.startswith("_do_"): | ||
851 | cmdname = attr[4:] | ||
843 | else: | 852 | else: |
844 | continue | 853 | continue |
845 | cmd2funcname[cmdname] = attr | 854 | cmd2funcname[cmdname] = attr |
@@ -1280,12 +1289,14 @@ def line2argv(line): | |||
1280 | i = -1 | 1289 | i = -1 |
1281 | while 1: | 1290 | while 1: |
1282 | i += 1 | 1291 | i += 1 |
1283 | if i >= len(line): break | 1292 | if i >= len(line): |
1293 | break | ||
1284 | ch = line[i] | 1294 | ch = line[i] |
1285 | 1295 | ||
1286 | if ch == "\\" and i+1 < len(line): | 1296 | if ch == "\\" and i+1 < len(line): |
1287 | # escaped char always added to arg, regardless of state | 1297 | # escaped char always added to arg, regardless of state |
1288 | if arg is None: arg = "" | 1298 | if arg is None: |
1299 | arg = "" | ||
1289 | if (sys.platform == "win32" | 1300 | if (sys.platform == "win32" |
1290 | or state in ("double-quoted", "single-quoted") | 1301 | or state in ("double-quoted", "single-quoted") |
1291 | ) and line[i+1] not in tuple('"\''): | 1302 | ) and line[i+1] not in tuple('"\''): |
@@ -1306,17 +1317,20 @@ def line2argv(line): | |||
1306 | arg += ch | 1317 | arg += ch |
1307 | elif state == "default": | 1318 | elif state == "default": |
1308 | if ch == '"': | 1319 | if ch == '"': |
1309 | if arg is None: arg = "" | 1320 | if arg is None: |
1321 | arg = "" | ||
1310 | state = "double-quoted" | 1322 | state = "double-quoted" |
1311 | elif ch == "'": | 1323 | elif ch == "'": |
1312 | if arg is None: arg = "" | 1324 | if arg is None: |
1325 | arg = "" | ||
1313 | state = "single-quoted" | 1326 | state = "single-quoted" |
1314 | elif ch in string.whitespace: | 1327 | elif ch in string.whitespace: |
1315 | if arg is not None: | 1328 | if arg is not None: |
1316 | argv.append(arg) | 1329 | argv.append(arg) |
1317 | arg = None | 1330 | arg = None |
1318 | else: | 1331 | else: |
1319 | if arg is None: arg = "" | 1332 | if arg is None: |
1333 | arg = "" | ||
1320 | arg += ch | 1334 | arg += ch |
1321 | if arg is not None: | 1335 | if arg is not None: |
1322 | argv.append(arg) | 1336 | argv.append(arg) |
@@ -1380,7 +1394,8 @@ def _dedentlines(lines, tabsize=8, skip_first_line=False): | |||
1380 | indents = [] | 1394 | indents = [] |
1381 | margin = None | 1395 | margin = None |
1382 | for i, line in enumerate(lines): | 1396 | for i, line in enumerate(lines): |
1383 | if i == 0 and skip_first_line: continue | 1397 | if i == 0 and skip_first_line: |
1398 | continue | ||
1384 | indent = 0 | 1399 | indent = 0 |
1385 | for ch in line: | 1400 | for ch in line: |
1386 | if ch == ' ': | 1401 | if ch == ' ': |
@@ -1393,16 +1408,19 @@ def _dedentlines(lines, tabsize=8, skip_first_line=False): | |||
1393 | break | 1408 | break |
1394 | else: | 1409 | else: |
1395 | continue # skip all-whitespace lines | 1410 | continue # skip all-whitespace lines |
1396 | if DEBUG: print "dedent: indent=%d: %r" % (indent, line) | 1411 | if DEBUG: |
1412 | print "dedent: indent=%d: %r" % (indent, line) | ||
1397 | if margin is None: | 1413 | if margin is None: |
1398 | margin = indent | 1414 | margin = indent |
1399 | else: | 1415 | else: |
1400 | margin = min(margin, indent) | 1416 | margin = min(margin, indent) |
1401 | if DEBUG: print "dedent: margin=%r" % margin | 1417 | if DEBUG: |
1418 | print "dedent: margin=%r" % margin | ||
1402 | 1419 | ||
1403 | if margin is not None and margin > 0: | 1420 | if margin is not None and margin > 0: |
1404 | for i, line in enumerate(lines): | 1421 | for i, line in enumerate(lines): |
1405 | if i == 0 and skip_first_line: continue | 1422 | if i == 0 and skip_first_line: |
1423 | continue | ||
1406 | removed = 0 | 1424 | removed = 0 |
1407 | for j, ch in enumerate(line): | 1425 | for j, ch in enumerate(line): |
1408 | if ch == ' ': | 1426 | if ch == ' ': |
@@ -1410,7 +1428,8 @@ def _dedentlines(lines, tabsize=8, skip_first_line=False): | |||
1410 | elif ch == '\t': | 1428 | elif ch == '\t': |
1411 | removed += tabsize - (removed % tabsize) | 1429 | removed += tabsize - (removed % tabsize) |
1412 | elif ch in '\r\n': | 1430 | elif ch in '\r\n': |
1413 | if DEBUG: print "dedent: %r: EOL -> strip up to EOL" % line | 1431 | if DEBUG: |
1432 | print "dedent: %r: EOL -> strip up to EOL" % line | ||
1414 | lines[i] = lines[i][j:] | 1433 | lines[i] = lines[i][j:] |
1415 | break | 1434 | break |
1416 | else: | 1435 | else: |
diff --git a/scripts/lib/wic/utils/runner.py b/scripts/lib/wic/utils/runner.py index 8d48f68034..f6a1d0828c 100644 --- a/scripts/lib/wic/utils/runner.py +++ b/scripts/lib/wic/utils/runner.py | |||
@@ -90,7 +90,8 @@ def show(cmdln_or_args): | |||
90 | cmd = cmdln_or_args | 90 | cmd = cmdln_or_args |
91 | 91 | ||
92 | msg = 'running command: "%s"' % cmd | 92 | msg = 'running command: "%s"' % cmd |
93 | if out: out = out.strip() | 93 | if out: |
94 | out = out.strip() | ||
94 | if out: | 95 | if out: |
95 | msg += ', with output::' | 96 | msg += ', with output::' |
96 | msg += '\n +----------------' | 97 | msg += '\n +----------------' |