blob: 83c8847db457ac8f7932b77425541f21d69fbbc3 [file] [log] [blame]
#!/usr/bin/env python
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import argparse
import os
import subprocess
import sys
import tempfile
import time
import zipfile
from mopy.config import Config
from mopy.paths import Paths
from mopy.version import Version
paths = Paths(Config(target_os=Config.OS_LINUX, is_debug=False))
sys.path.insert(0, os.path.join(paths.src_root, "tools"))
# pylint: disable=F0401
import find_depot_tools
depot_tools_path = find_depot_tools.add_depot_tools_to_path()
gsutil_exe = os.path.join(depot_tools_path, "third_party", "gsutil", "gsutil")
def upload(dry_run, verbose):
dest = "gs://mojo/shell/" + Version().version + "/linux-x64.zip"
with tempfile.NamedTemporaryFile() as zip_file:
with zipfile.ZipFile(zip_file, 'w') as z:
with open(paths.mojo_shell_path) as shell_binary:
zipinfo = zipfile.ZipInfo("mojo_shell")
zipinfo.external_attr = 0777 << 16L
zipinfo.compress_type = zipfile.ZIP_DEFLATED
zipinfo.date_time = time.gmtime(os.path.getmtime(paths.mojo_shell_path))
if verbose:
print "zipping %s" % paths.mojo_shell_path
z.writestr(zipinfo, shell_binary.read())
if dry_run:
print str([gsutil_exe, "cp", zip_file.name, dest])
else:
subprocess.check_call([gsutil_exe, "cp", zip_file.name, dest])
def main():
parser = argparse.ArgumentParser(description="Upload mojo_shell binary to "+
"google storage")
parser.add_argument("-n", "--dry_run", help="Dry run, do not actually "+
"upload", action="store_true")
parser.add_argument("-v", "--verbose", help="Verbose mode",
action="store_true")
args = parser.parse_args()
upload(args.dry_run, args.verbose)
return 0
if __name__ == "__main__":
sys.exit(main())