summaryrefslogtreecommitdiff
path: root/scripts/storage.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/storage.py')
-rwxr-xr-xscripts/storage.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/scripts/storage.py b/scripts/storage.py
new file mode 100755
index 000000000..b15c76855
--- /dev/null
+++ b/scripts/storage.py
@@ -0,0 +1,49 @@
+#! /usr/bin/env python
+
+# Copyright 2016 WebAssembly Community Group participants
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import glob
+import json
+import os
+import urllib2
+
+
+STORAGE_BASE = 'https://storage.googleapis.com/wasm-llvm/builds/git/'
+
+
+def download_revision(force_latest):
+ name = 'latest' if force_latest else 'lkgr'
+ downloaded = urllib2.urlopen(STORAGE_BASE + name).read().strip()
+ # TODO: for now try opening as JSON, if that doesn't work then the content is
+ # just a hash. The waterfall is in the process of migrating to JSON.
+ info = None
+ try:
+ info = json.loads(downloaded)
+ except:
+ pass
+ return info['build'] if type(info) == dict else downloaded
+
+
+def download_tar(tar_pattern, directory, revision):
+ tar_path = os.path.join(directory, tar_pattern)
+ revision_tar_path = tar_path % revision
+ if not os.path.isfile(revision_tar_path):
+ with open(revision_tar_path, 'w+') as f:
+ f.write(urllib2.urlopen(STORAGE_BASE + tar_pattern % revision).read())
+ # Remove any previous tarfiles.
+ for older_tar in glob.glob(tar_path):
+ if older_tar != revision_tar_path:
+ os.path.remove(older_tar)
+ return revision_tar_path