1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-26 16:09:27 -05:00
denoland-deno/tools/gcloud_upload.py

55 lines
1.2 KiB
Python
Raw Normal View History

#!/usr/bin/env python
# Prereq:
# - gcloud auth login
# - gcloud config set project deno-223616
# This program uploads the specified file to GCloud Storage in the denoland
# bucket. It places a checksum file into the current directory using the base
# filename of the specified file.
import os
import sys
import hashlib
from util import root_path, run
from third_party import tp
def print_usage():
print "Usage: ./tools/gcloud_upload.py target/release/obj/third_party/v8/libv8.a"
sys.exit(1)
def compute_sha1(filename):
m = hashlib.sha1()
with open(filename) as f:
m.update(f.read())
return m.hexdigest()
def main(argv):
if len(argv) != 2:
print_usage()
os.chdir(root_path)
filename = sys.argv[1]
basename = os.path.basename(filename)
sha1 = compute_sha1(filename)
print sha1
gs_url = "gs://denoland/" + sha1
#gsutil = tp("depot_tools/gsutil.py")
gsutil = "gsutil" # standalone installation
run([gsutil, "cp", filename, gs_url])
run([gsutil, "acl", "ch", "-u", "AllUsers:R", gs_url])
target_filename = basename + ".sha1"
with open(target_filename, 'w') as f:
f.write(sha1)
print "Wrote", target_filename
if __name__ == '__main__':
sys.exit(main(sys.argv))