Skip to content

Commit efa802e

Browse files
committed
split_doubledash: add maxsplit option
- This is needed to run envkernel recursively, where there may be multiple `--` in the argv.
1 parent 405142c commit efa802e

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

envkernel.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,18 @@
5151
}
5252

5353

54-
def split_doubledash(argv):
54+
def split_doubledash(argv, maxsplit=None):
5555
"""Split on '--', for spearating arguments"""
5656
new = [ ]
5757
last = 0
58+
nsplit = 0
5859
for i, x in enumerate(argv):
5960
if x == '--':
6061
new.append(argv[last:i])
6162
last = i + 1
63+
nsplit += 1
64+
if maxsplit is not None and nsplit >= maxsplit:
65+
break
6266
new.append(argv[last:])
6367
return new
6468

@@ -256,7 +260,7 @@ def run(self):
256260
257261
before '--': the modules to load
258262
after '--': the Python command to run after loading"""
259-
argv, rest = split_doubledash(self.argv)
263+
argv, rest = split_doubledash(self.argv, 1)
260264
parser = argparse.ArgumentParser()
261265
parser.add_argument('--purge', action='store_true', default=False, help="Purge existing modules first")
262266
parser.add_argument('module', nargs='+')
@@ -320,7 +324,7 @@ def run(self):
320324
321325
before '--': the modules to load
322326
after '--': the Python command to run after loading"""
323-
argv, rest = split_doubledash(self.argv)
327+
argv, rest = split_doubledash(self.argv, 1)
324328
parser = argparse.ArgumentParser()
325329
#parser.add_argument('--purge', action='store_true', default=False, help="Purge existing modules first")
326330
parser.add_argument('path')
@@ -389,7 +393,7 @@ def setup(self):
389393
replace=self.replace, prefix=self.prefix)
390394

391395
def run(self):
392-
argv, rest = split_doubledash(self.argv)
396+
argv, rest = split_doubledash(self.argv, 1)
393397
parser = argparse.ArgumentParser()
394398
parser.add_argument('image', help='Dcker image name')
395399
#parser.add_argument('--mount', '-m', action='append', default=[],
@@ -524,7 +528,7 @@ def setup(self):
524528
replace=self.replace, prefix=self.prefix)
525529

526530
def run(self):
527-
argv, rest = split_doubledash(self.argv)
531+
argv, rest = split_doubledash(self.argv, 1)
528532
parser = argparse.ArgumentParser()
529533
parser.add_argument('image', help='image name')
530534
#parser.add_argument('--mount', '-m', action='append', default=[],

0 commit comments

Comments
 (0)