Support deps for bower_component rules

Combine bower components by unzipping their bower_components
directories including transitive dependencies over each other.

Change-Id: Ib1792ba0b17999b7df60babf6ce6a59c292c3eca
This commit is contained in:
Dave Borowitz
2015-11-16 10:42:58 -05:00
parent 3232f85eda
commit c913a9bc7b
4 changed files with 71 additions and 18 deletions

View File

@@ -54,10 +54,12 @@ def bower_component(
package,
version,
license,
deps = [],
sha1 = '',
visibility = ['PUBLIC']):
download_name = '%s__download' % name
genrule(
name = name,
name = download_name,
cmd = ' '.join([
'$(exe //tools/js:download_bower)',
'-b', '"%s"' % run_npm_binary('//lib/js:bower'),
@@ -67,8 +69,30 @@ def bower_component(
'-s', sha1,
'-o', '$OUT',
]),
out = '%s-%s.zip' % (name, version),
out = '%s.zip' % download_name,
license = license,
visibility = [],
)
renamed_name = '%s__renamed' % name
genrule(
name = renamed_name,
cmd = ' && '.join([
'cd $TMP',
'mkdir bower_components',
'cd bower_components',
'unzip $(location :%s)' % download_name,
'cd ..',
'zip -r $OUT bower_components',
]),
out = '%s.zip' % renamed_name,
visibility = [],
)
genrule(
name = name,
cmd = _combine_components([':%s' % renamed_name] + deps),
out = '%s-%s.zip' % (name, version),
visibility = visibility,
)
@@ -77,19 +101,22 @@ def bower_components(
name,
deps,
visibility = ['PUBLIC']):
bc = '$TMP/bower_components'
cmds = ['mkdir %s' % bc, 'cd %s' % bc]
for dep in deps:
cmds.append('unzip $(location %s)' % dep)
cmds.extend(['cd $TMP', 'zip -r $OUT bower_components'])
genrule(
name = name,
cmd = ' && '.join(cmds),
cmd = _combine_components(deps),
out = '%s.bower_components.zip' % name,
visibility = visibility,
)
def _combine_components(deps):
cmds = ['cd $TMP']
for d in deps:
cmds.append('unzip -qo $(location %s)' % d)
cmds.append('zip -r $OUT bower_components')
return ' && '.join(cmds)
VULCANIZE_FLAGS = [
'--inline-scripts',
'--inline-css',