1919 visibility = ["//visibility:private"],
2020)
2121
22- # DEPRECATED: use :all instead
2322ruby_library(
24- name = "libs ",
23+ name = "bundler ",
2524 srcs = glob(
2625 include = [
27- "lib/ruby/{ruby_version}/gems/*/**/*",
28- "lib/ruby/{ruby_version}/bin/**/*",
26+ "bundler/**/*",
2927 ],
30- exclude = {exclude},
3128 ),
32- deps = [":bundler_setup"],
3329 rubyopt = ["-r${RUNFILES_DIR}/{repo_name}/lib/bundler/setup.rb"],
3430)
3531
4238 srcs = glob(
4339 include = [
4440 "lib/ruby/{ruby_version}/gems/{name}-{version}/**/*",
45- # TODO scope down included bin files
46- "lib/ruby/{ruby_version}/bin/**/*",
4741 ],
4842 exclude = {exclude},
4943 ),
5044 deps = {deps},
5145 rubyopt = ["-r${RUNFILES_DIR}/{repo_name}/lib/bundler/setup.rb"],
5246)
53-
5447'
5548
56- ALL_TEMPLATE = '
57- ruby_library(
58- name = "all",
59- deps = {deps},
60- rubyopt = ["-r${RUNFILES_DIR}/{repo_name}/lib/bundler/setup.rb"],
61- )
62- '
6349require "bundler"
50+ require 'json'
6451
6552def create_bundle_build_file ( build_out_file , lock_file , repo_name , excludes , workspace_name )
6653 # TODO: properly calculate path/ruby version here
6754 # ruby_version = RUBY_VERSION # doesnt work because verion is 2.5.5 path is 2.5.0
6855 ruby_version = "*"
6956
7057 template_out = TEMPLATE . gsub ( "{workspace_name}" , workspace_name )
71- . gsub ( "{exclude}" , excludes )
7258 . gsub ( "{repo_name}" , repo_name )
7359 . gsub ( "{ruby_version}" , ruby_version )
7460
@@ -78,18 +64,19 @@ def create_bundle_build_file(build_out_file, lock_file, repo_name, excludes, wor
7864 bundle . specs . each { |spec |
7965 deps = spec . dependencies . map ( &:name )
8066 deps += [ ":bundler_setup" ]
81- template_out += GEM_TEMPLATE . gsub ( "{exclude}" , excludes )
67+
68+ exclude_array = excludes [ spec . name ] || [ ]
69+ # We want to exclude files and folder with spaces in them
70+ exclude_array += [ "**/* *.*" , "**/* */*" ]
71+
72+ template_out += GEM_TEMPLATE . gsub ( "{exclude}" , exclude_array . to_s )
8273 . gsub ( "{name}" , spec . name )
8374 . gsub ( "{version}" , spec . version . to_s )
8475 . gsub ( "{deps}" , deps . to_s )
8576 . gsub ( "{repo_name}" , repo_name )
8677 . gsub ( "{ruby_version}" , ruby_version )
8778 }
8879
89- # Append collection of all gems
90- template_out += ALL_TEMPLATE . gsub ( "{repo_name}" , repo_name )
91- . gsub ( "{deps}" , ( [ ":bundler_setup" ] + bundle . specs . map ( &:name ) ) . to_s )
92-
9380 # Write the actual BUILD file
9481 ::File . open ( build_out_file , 'w' ) { |f |
9582 f . puts template_out
@@ -106,7 +93,9 @@ def create_bundle_build_file(build_out_file, lock_file, repo_name, excludes, wor
10693 build_out_file = ARGV [ 0 ]
10794 lock_file = ARGV [ 1 ]
10895 repo_name = ARGV [ 2 ]
109- excludes = ARGV [ 3 ]
96+
97+ excludes = JSON . parse ( ARGV [ 3 ] )
98+
11099 workspace_name = ARGV [ 4 ]
111100
112101 create_bundle_build_file ( build_out_file , lock_file , repo_name , excludes , workspace_name )
0 commit comments