bazel: bower support
* npm_binary (download tarball packaged npm apps)
* bower_archive (download a zip file, to be put in WORKSPACE)
* bower_component (defining a bower library, with dependency )
* bower_component_bundle (zipping up libraries together)
* js_component (insert plain js file into bower component bundle)
* bower2bazel.py: run bower to find dependencies, generate a .bzl to
define archives and define components
Tested:
python tools/js/bower2bazel.py -w lib/js/bower_archives.bzl -b \
lib/js/bower_components.bzl
bazel build polygerrit-ui:components
unzip -v bazel-bin/polygerrit-ui/components.zip > /tmp/baz
buck build polygerrit-ui:polygerrit_components
unzip -v buck-out/gen/polygerrit-ui/polygerrit_components/polygerrit_components.bower_components.zip > /tmp/buck
diff /tmp/buck /tmp/baz
The diff corresponds to newer file versions pinned through bower2bazel.
Change-Id: I4f33914d4853bcf8afe78b4719d0e0e83b139031
This commit is contained in:
@@ -25,8 +25,6 @@ import sys
|
||||
import tarfile
|
||||
import tempfile
|
||||
|
||||
from tools import util
|
||||
|
||||
|
||||
def extract(path, outdir, bin):
|
||||
if os.path.exists(os.path.join(outdir, bin)):
|
||||
@@ -59,19 +57,21 @@ def extract(path, outdir, bin):
|
||||
# finished.
|
||||
extract_one(tar.getmember(bin))
|
||||
|
||||
|
||||
def main(args):
|
||||
path = args[0]
|
||||
suffix = '.npm_binary.tgz'
|
||||
tgz = os.path.basename(path)
|
||||
|
||||
parts = tgz[:-len(suffix)].split('@')
|
||||
|
||||
if not tgz.endswith(suffix) or len(parts) != 2:
|
||||
print('usage: %s <path/to/npm_binary>' % sys.argv[0], file=sys.stderr)
|
||||
return 1
|
||||
|
||||
name, version = parts
|
||||
sha1 = util.hash_file(hashlib.sha1(), path).hexdigest()
|
||||
name, _ = parts
|
||||
|
||||
# Avoid importing from gerrit because we don't want to depend on the right CWD.
|
||||
sha1 = hashlib.sha1(open(path, 'rb').read()).hexdigest()
|
||||
outdir = '%s-%s' % (path[:-len(suffix)], sha1)
|
||||
rel_bin = os.path.join('package', 'bin', name)
|
||||
bin = os.path.join(outdir, rel_bin)
|
||||
|
||||
Reference in New Issue
Block a user