summaryrefslogtreecommitdiffstats
path: root/bin/reproducible_remote_scheduler.py
diff options
context:
space:
mode:
authorMattia Rizzolo <mattia@mapreri.org>2015-08-18 21:40:59 +0000
committerMattia Rizzolo <mattia@mapreri.org>2015-08-18 22:16:25 +0000
commit16955949fd64ef9adf251a106cb7dfcbf99f35c0 (patch)
treee1d99a9a0ea253a7c39f1e792fa5e6ec31e4f2b1 /bin/reproducible_remote_scheduler.py
parent0aac084ecbbeba1b27b2ee12817c885437aa0494 (diff)
downloadjenkins.debian.net-16955949fd64ef9adf251a106cb7dfcbf99f35c0.tar.xz
reproducible: scheduler: add a --null flag to read arguments from stdin and consider them null-terminated. Thanks Lunar for the suggestion
Diffstat (limited to 'bin/reproducible_remote_scheduler.py')
-rwxr-xr-xbin/reproducible_remote_scheduler.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/bin/reproducible_remote_scheduler.py b/bin/reproducible_remote_scheduler.py
index 435dedd5..50957b75 100755
--- a/bin/reproducible_remote_scheduler.py
+++ b/bin/reproducible_remote_scheduler.py
@@ -8,6 +8,7 @@
#
# A secure script to be called from remote hosts
+import sys
import time
import argparse
@@ -20,6 +21,16 @@ parser = argparse.ArgumentParser(
' issue AND that status AND that date". Blacklisted package '
"can't be selected by a filter, but needs to be explitely listed"
' in the package list.')
+parser.add_argument('--null', action='store_true', help='The arguments are '
+ 'considered null-separated and coming from stding')
+
+null_args = parser.parse_known_args()[0]
+if null_args.null:
+ input_args = sys.stdin.read().split('\0')
+else:
+ input_args = sys.argv
+
+
parser.add_argument('--dry-run', action='store_true')
parser.add_argument('-k', '--keep-artifacts', action='store_true',
help='Save artifacts (for further offline study)')
@@ -45,7 +56,7 @@ parser.add_argument('-s', '--suite', required=True,
help='Specify the suite to schedule in')
parser.add_argument('packages', metavar='package', nargs='*',
help='list of packages to reschedule')
-scheduling_args = parser.parse_known_args()[0]
+scheduling_args = parser.parse_known_args(args=input_args)[0]
# these are here as an hack to be able to parse the command line
from reproducible_common import *