summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJF Bastien <github@jfbastien.com>2016-01-08 16:30:52 -0800
committerJF Bastien <github@jfbastien.com>2016-01-08 16:30:52 -0800
commit0b7c518f556857fd0ac02d95b463e37d48ab486b (patch)
tree44f6d80f2333567349c7421840f886873ac4ee4e
parent02910f3defc1be94ee1d4af6d43ec05b1c37d18d (diff)
parentd390f154a8e769621ab2a239e61f9d0c4c034dc4 (diff)
downloadbinaryen-0b7c518f556857fd0ac02d95b463e37d48ab486b.tar.gz
binaryen-0b7c518f556857fd0ac02d95b463e37d48ab486b.tar.bz2
binaryen-0b7c518f556857fd0ac02d95b463e37d48ab486b.zip
Merge pull request #87 from WebAssembly/not-just-lkgr
Allow force-updating to the latest waterfall hash.
-rw-r--r--test/revision (renamed from test/lkgr)0
-rwxr-xr-xupdate.py55
2 files changed, 35 insertions, 20 deletions
diff --git a/test/lkgr b/test/revision
index 149b8ad31..149b8ad31 100644
--- a/test/lkgr
+++ b/test/revision
diff --git a/update.py b/update.py
index 0ae8ccf1c..99c142d79 100755
--- a/update.py
+++ b/update.py
@@ -26,31 +26,32 @@ import urllib2
STORAGE_BASE = 'https://storage.googleapis.com/wasm-llvm/builds/git/'
BASE_DIR = os.path.abspath('test')
-LKGR_PATH = os.path.join(BASE_DIR, 'lkgr')
+REVISION_PATH = os.path.join(BASE_DIR, 'revision')
TORTURE_TAR = 'wasm-torture-s-%s.tbz2'
TORTURE_DIR = os.path.join(BASE_DIR, 'torture-s')
-def download_last_known_good_revision():
- return urllib2.urlopen(STORAGE_BASE + 'lkgr').read().strip()
+def download_revision(force_latest):
+ name = 'latest' if force_latest else 'lkgr'
+ return urllib2.urlopen(STORAGE_BASE + name).read().strip()
-def write_lkgr(lkgr):
- with open(LKGR_PATH, 'w') as f:
- f.write(lkgr)
+def write_revision(revision):
+ with open(REVISION_PATH, 'w') as f:
+ f.write(revision)
-def download_tar_at_lkgr(tar_pattern, lkgr):
+def download_tar(tar_pattern, revision):
tar_path = os.path.join(BASE_DIR, tar_pattern)
- lkgr_tar_path = tar_path % lkgr
- if not os.path.isfile(lkgr_tar_path):
- with open(lkgr_tar_path, 'w+') as f:
- f.write(urllib2.urlopen(STORAGE_BASE + tar_pattern % lkgr).read())
+ 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 != lkgr_tar_path:
+ if older_tar != revision_tar_path:
os.path.remove(older_tar)
- return lkgr_tar_path
+ return revision_tar_path
def untar(tarfile, outdir):
@@ -81,20 +82,34 @@ def untar(tarfile, outdir):
shutil.rmtree(tmp_dir)
-def main():
+def run(force_latest, override_hash):
subprocess.check_call(['git', 'submodule', 'sync', '--quiet'])
subprocess.check_call(['git', 'submodule', 'init', '--quiet'])
subprocess.check_call(['git', 'submodule', 'update', '--quiet'])
subprocess.check_call(['git', 'submodule', 'foreach',
'git', 'pull', 'origin', 'master', '--quiet'])
updates = 0
- lkgr = download_last_known_good_revision()
- updates += untar(download_tar_at_lkgr(TORTURE_TAR, lkgr), TORTURE_DIR)
+ revision = (override_hash if override_hash else
+ download_revision(force_latest=force_latest))
+ updates += untar(download_tar(TORTURE_TAR, revision), TORTURE_DIR)
if updates:
- # Only update lkgr if the files it downloaded are different.
- print 'Updating lkgr to', lkgr
- write_lkgr(lkgr)
+ # Only update revision if the files it downloaded are different.
+ print 'Updating revision to', revision
+ write_revision(revision)
+
+
+def getargs():
+ import argparse
+ parser = argparse.ArgumentParser(
+ description='Update the repository dependencies.')
+ parser.add_argument('--force-latest', type=bool, default=False,
+ help='Sync to latest waterfall build, not lkgr')
+ parser.add_argument('--override-hash', type=str, default=None,
+ help='Sync to specific hash from waterfall build')
+ return parser.parse_args()
if __name__ == '__main__':
- sys.exit(main())
+ args = getargs()
+ sys.exit(run(force_latest=args.force_latest,
+ override_hash=args.override_hash))