diff options
author | Paul Sokolovsky <paul.sokolovsky@linaro.org> | 2013-04-17 14:30:32 +0300 |
---|---|---|
committer | Paul Sokolovsky <paul.sokolovsky@linaro.org> | 2013-04-17 14:30:32 +0300 |
commit | de322f4de7f6863a83ae4722d764390ddbe07f53 (patch) | |
tree | e67a13fe49c5835d7de76166ff8e7f617ff6f399 /utils | |
parent | 6fb1349d3ce2a30b37b24001d35b486a32022f14 (diff) |
Elaborate command-line interface.
Diffstat (limited to 'utils')
-rwxr-xr-x | utils/new-publish/publish | 19 |
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) |