Add base argument to copy_select_files

This commit is contained in:
Henrik Giesel 2021-01-01 14:39:15 +01:00
parent 12dfb38609
commit f97ad260bb
6 changed files with 25 additions and 10 deletions

View File

@ -27,22 +27,27 @@ def copy_files(ctx, files):
return [DefaultInfo(files = depset(outputs))] return [DefaultInfo(files = depset(outputs))]
def copy_select_files(ctx, files, include, exclude, unwanted_prefix): def remove_prefix(text, prefix):
if text.startswith(prefix):
return text[len(prefix):]
return text
def copy_select_files(ctx, files, include, exclude, base, unwanted_prefix):
wanted = [] wanted = []
for f in files.to_list(): for f in files.to_list():
path = f.path path = remove_prefix(f.path, base)
want = True want = True
for substr in exclude: for substr in exclude:
if substr in path: if path.startswith(substr):
want = False want = False
continue continue
if not want: if not want:
continue continue
for substr in include: for substr in include:
if substr in path: if path.startswith(substr):
output = path.replace(unwanted_prefix, "") output = remove_prefix(path, unwanted_prefix)
wanted.append((f, output)) wanted.append((f, output))
return copy_files(ctx, wanted) return copy_files(ctx, wanted)

View File

@ -6,7 +6,8 @@ _include = [
"css_browser_selector.min.js", "css_browser_selector.min.js",
] ]
_unwanted_prefix = "external/npm/node_modules/css-browser-selector/" _base = "external/npm/node_modules/css-browser-selector/"
_unwanted_prefix = ""
def _copy_css_browser_selector_impl(ctx): def _copy_css_browser_selector_impl(ctx):
return copy_select_files( return copy_select_files(
@ -14,6 +15,7 @@ def _copy_css_browser_selector_impl(ctx):
ctx.attr.css_browser_selector.files, ctx.attr.css_browser_selector.files,
_include, _include,
[], [],
_base,
_unwanted_prefix, _unwanted_prefix,
) )

View File

@ -6,7 +6,8 @@ _include = [
"jquery-ui.min.js", "jquery-ui.min.js",
] ]
_unwanted_prefix = "external/npm/node_modules/jquery-ui-dist/" _base = "external/npm/node_modules/jquery-ui-dist/"
_unwanted_prefix = ""
def _copy_jquery_ui_impl(ctx): def _copy_jquery_ui_impl(ctx):
return copy_select_files( return copy_select_files(
@ -14,6 +15,7 @@ def _copy_jquery_ui_impl(ctx):
ctx.attr.jquery_ui.files, ctx.attr.jquery_ui.files,
_include, _include,
[], [],
_base,
_unwanted_prefix, _unwanted_prefix,
) )

View File

@ -6,7 +6,8 @@ _include = [
"dist/jquery.min.js" "dist/jquery.min.js"
] ]
_unwanted_prefix = "external/npm/node_modules/jquery/dist/" _base = "external/npm/node_modules/jquery/"
_unwanted_prefix = "dist/"
def _copy_jquery_impl(ctx): def _copy_jquery_impl(ctx):
return copy_select_files( return copy_select_files(
@ -14,6 +15,7 @@ def _copy_jquery_impl(ctx):
ctx.attr.jquery.files, ctx.attr.jquery.files,
_include, _include,
[], [],
_base,
_unwanted_prefix, _unwanted_prefix,
) )

View File

@ -14,7 +14,8 @@ _exclude = [
"es5/sre/mathmaps/mathmaps_ie.js", "es5/sre/mathmaps/mathmaps_ie.js",
] ]
_unwanted_prefix = "external/npm/node_modules/mathjax/es5/" _base = "external/npm/node_modules/mathjax/"
_unwanted_prefix = "es5/"
def _copy_mathjax_impl(ctx): def _copy_mathjax_impl(ctx):
return copy_select_files( return copy_select_files(
@ -22,6 +23,7 @@ def _copy_mathjax_impl(ctx):
ctx.attr.mathjax.files, ctx.attr.mathjax.files,
_include, _include,
_exclude, _exclude,
_base,
_unwanted_prefix, _unwanted_prefix,
) )

View File

@ -6,7 +6,8 @@ _include = [
"dist/protobuf.min.js", "dist/protobuf.min.js",
] ]
_unwanted_prefix = "external/npm/node_modules/protobufjs/dist/" _base = "external/npm/node_modules/protobufjs/"
_unwanted_prefix = "dist/"
def _copy_protobufjs_impl(ctx): def _copy_protobufjs_impl(ctx):
return copy_select_files( return copy_select_files(
@ -14,6 +15,7 @@ def _copy_protobufjs_impl(ctx):
ctx.attr.protobufjs.files, ctx.attr.protobufjs.files,
_include, _include,
[], [],
_base,
_unwanted_prefix, _unwanted_prefix,
) )