aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorPaul Sokolovsky <paul.sokolovsky@linaro.org>2013-04-17 14:30:32 +0300
committerPaul Sokolovsky <paul.sokolovsky@linaro.org>2013-04-17 14:30:32 +0300
commitde322f4de7f6863a83ae4722d764390ddbe07f53 (patch)
treee67a13fe49c5835d7de76166ff8e7f617ff6f399 /utils
parent6fb1349d3ce2a30b37b24001d35b486a32022f14 (diff)
Elaborate command-line interface.
Diffstat (limited to 'utils')
-rwxr-xr-xutils/new-publish/publish19
1 files changed, 10 insertions, 9 deletions
diff --git a/utils/new-publish/publish b/utils/new-publish/publish
index 7af154f..aa2dfcf 100755
--- a/utils/new-publish/publish
+++ b/utils/new-publish/publish
@@ -15,33 +15,34 @@ COPY_KEY_FILE = "/var/run/lava/publish-copy"
TRIGGER_KEY_FILE = "/var/run/lava/publish-trigger"
if __name__ == "__main__":
- optparser = optparse.OptionParser(usage="%prog")
- optparser.add_option("-d", "--dest-dir", metavar="DIR", help="Destination directory")
+ optparser = optparse.OptionParser(usage="%prog <job/build> <pattern>...")
+ optparser.add_option("-t", "--type", help="Build type")
optparser.add_option("-p", "--strip", metavar="NUM", type=int, default=0,
help="Strip leading components from dest file names.")
optparser.add_option("--identity-copy", metavar="KEY", default=COPY_KEY_FILE, help="SSH key file")
optparser.add_option("--identity-trigger", metavar="KEY", default=TRIGGER_KEY_FILE, help="SSH key file")
optparser.add_option("-n", "--dry-run", action="store_true", help="Don't actually publish files, log commands")
options, args = optparser.parse_args(sys.argv[1:])
- if len(args) == 0:
+ if len(args) < 2:
optparser.error("Wrong number of arguments")
if options.dest_dir is None:
optparser.error("--dest-dir is required option")
- patterns = args
+ build_id = args[0]
+ patterns = args[1:]
# Support Jenkins syntax, with comma as separator
- if len(args) == 1 and "," in args[0]:
- patterns = args[0].split(",")
+ if len(patterns) == 1 and "," in patterns:
+ patterns = patterns.split(",")
file_list = publib.get_file_list(patterns)
print "File list:", file_list
- dir_list = publib.make_dir_struct(file_list, UPLOAD_DIR, options.dest_dir, options.strip)
+ dir_list = publib.make_dir_struct(file_list, UPLOAD_DIR, build_id, options.strip)
print "Dir list:", dir_list
publib.create_dir_struct(dir_list, REMOTE_HOST, COPY_USER_NAME, options.identity_copy)
- upload_script = publib.make_upload_script(file_list, UPLOAD_DIR, options.dest_dir, options.strip)
+ upload_script = publib.make_upload_script(file_list, UPLOAD_DIR, build_id, options.strip)
publib.upload_files(upload_script, REMOTE_HOST, COPY_USER_NAME, options.identity_copy, options)
- rc = os.system("ssh -i %s %s@%s propagate.py %s" % (options.identity_trigger, TRIGGER_USER_NAME, REMOTE_HOST, options.dest_dir))
+ rc = os.system("ssh -i %s %s@%s propagate.py %s" % (options.identity_trigger, TRIGGER_USER_NAME, REMOTE_HOST, build_id))
if rc != 0:
print "Publishing failed"
sys.exit(1)