From 3e955030173a73c80fca82e8539bf3e37ff17cf8 Mon Sep 17 00:00:00 2001 From: zmagod Date: Tue, 16 Jan 2018 14:18:31 +0100 Subject: [PATCH] adds(addon_loader) a generator that creates a js file with available addons Signed-off-by: zmagod --- config/initializers/addon_loader.rb | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/config/initializers/addon_loader.rb b/config/initializers/addon_loader.rb index 0e0ec2e35..c7862f831 100644 --- a/config/initializers/addon_loader.rb +++ b/config/initializers/addon_loader.rb @@ -1,17 +1,28 @@ -# This code fetch the components from the addons but only in the root of the -# addon/**/client folder. - TARGET_ROOT = "#{Dir.pwd}/app/javascript/src/componentLoader/components".freeze begin # clear previous build FileUtils.rm_f Dir.glob("#{TARGET_ROOT}/*") +available_addons = [] Dir.foreach('addons/') do |path| addons_client_root = "addons/#{path}/client" next unless Dir.exist? addons_client_root + available_addons << path File.symlink("#{Dir.pwd}/#{addons_client_root}", "#{TARGET_ROOT}/#{path}") end + +# generate a file with available addons +if available_addons.any? + file_name = "#{Dir.pwd}/app/javascript/src/componentLoader/availableAddons.js" + # remove if already exists + FileUtils.rm_f Dir.glob(file_name) + File.new(file_name, 'w+') + File.open(file_name, 'w') do |file| + file.write("export default #{available_addons};") + end +end + # handles error on the platforms that does not support symlink # http://ruby-doc.org/core-2.2.0/File.html#symlink-method rescue