From c2093946c8b3ba72ed354df320fc2fde1cf8dd1e Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Sat, 31 Aug 2013 10:48:47 +0800 Subject: [PATCH] Add flag for upload script to skip updating version. When uploading multiple distributions in future, we need to make sure all distributions have to ben uploaded before triggering the update-atom-shell script of Atom. --- script/upload.py | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/script/upload.py b/script/upload.py index 4d1fb6e0bce9..ce20aaed88c3 100755 --- a/script/upload.py +++ b/script/upload.py @@ -1,5 +1,6 @@ #!/usr/bin/env python +import argparse import errno import glob import os @@ -17,17 +18,32 @@ TARGET_PLATFORM = { 'win32': 'win32', }[sys.platform] +ATOM_SHELL_VRESION = get_atom_shell_version() + SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) DIST_DIR = os.path.join(SOURCE_ROOT, 'dist') -DIST_NAME = 'atom-shell-{0}-{1}.zip'.format(get_atom_shell_version(), - TARGET_PLATFORM) +DIST_NAME = 'atom-shell-{0}-{1}.zip'.format(ATOM_SHELL_VRESION, TARGET_PLATFORM) def main(): + args = parse_args() + if not dist_newer_than_head(): create_dist = os.path.join(SOURCE_ROOT, 'script', 'create-dist.py') subprocess.check_call([sys.executable, create_dist]) - upload() + + bucket, access_key, secret_key = s3_config() + upload(bucket, access_key, secret_key) + if not args.no_update_version: + update_version(bucket, access_key, secret_key) + + +def parse_args(): + parser = argparse.ArgumentParser(description='upload distribution file') + parser.add_argument('-n', '--no-update-version', + help='Do not update the latest version file', + action='store_false') + return parser.parse_args() def dist_newer_than_head(): @@ -44,17 +60,19 @@ def dist_newer_than_head(): return dist_time > int(head_time) -def upload(): +def upload(bucket, access_key, secret_key, version=ATOM_SHELL_VRESION): os.chdir(DIST_DIR) - bucket, access_key, secret_key = s3_config() - version = get_atom_shell_version() s3put(bucket, access_key, secret_key, DIST_DIR, 'atom-shell/{0}'.format(version), [DIST_NAME]) s3put(bucket, access_key, secret_key, DIST_DIR, 'atom-shell/dist/{0}'.format(version), glob.glob('node-*.tar.gz')) - update_version(bucket, access_key, secret_key) + +def update_version(bucket, access_key, secret_key): + prefix = os.path.join(SOURCE_ROOT, 'dist') + version = os.path.join(prefix, 'version') + s3put(bucket, access_key, secret_key, prefix, 'atom-shell', [version]) def s3_config(): @@ -68,12 +86,6 @@ def s3_config(): return config -def update_version(bucket, access_key, secret_key): - prefix = os.path.join(SOURCE_ROOT, 'dist') - version = os.path.join(prefix, 'version') - s3put(bucket, access_key, secret_key, prefix, 'atom-shell', [ version ]) - - def s3put(bucket, access_key, secret_key, prefix, key_prefix, files): args = [ 's3put',