diff --git a/lib/mrsk/configuration/accessory.rb b/lib/mrsk/configuration/accessory.rb index 9b0fad45..6642997d 100644 --- a/lib/mrsk/configuration/accessory.rb +++ b/lib/mrsk/configuration/accessory.rb @@ -74,12 +74,19 @@ class Mrsk::Configuration::Assessory def expand_local_file(local_file) if local_file.end_with?("erb") - read_dynamic_file(local_file) + with_clear_env_loaded { read_dynamic_file(local_file) } else Pathname.new(File.expand_path(local_file)).to_s end end + def with_clear_env_loaded + (env["clear"] || env).each { |k, v| ENV[k] = v } + yield + ensure + (env["clear"] || env).each { |k, v| ENV.delete(k) } + end + def read_dynamic_file(local_file) StringIO.new(ERB.new(IO.read(local_file)).result) end diff --git a/test/configuration/accessory_test.rb b/test/configuration/accessory_test.rb index 2098d0fa..cee4511c 100644 --- a/test/configuration/accessory_test.rb +++ b/test/configuration/accessory_test.rb @@ -98,7 +98,8 @@ class ConfigurationAccessoryTest < ActiveSupport::TestCase @deploy[:accessories]["mysql"]["files"] << "test/fixtures/files/structure.sql.erb:/docker-entrypoint-initdb.d/structure.sql" @config = Mrsk::Configuration.new(@deploy) - assert_equal "This was dynamically expanded", @config.accessory(:mysql).files.keys[2].read + assert_match "This was dynamically expanded", @config.accessory(:mysql).files.keys[2].read + assert_match "%", @config.accessory(:mysql).files.keys[2].read end test "directories" do diff --git a/test/fixtures/files/structure.sql.erb b/test/fixtures/files/structure.sql.erb index 102f8132..35ddfe21 100644 --- a/test/fixtures/files/structure.sql.erb +++ b/test/fixtures/files/structure.sql.erb @@ -1 +1,2 @@ -<%= "This was dynamically expanded" %> \ No newline at end of file +<%= "This was dynamically expanded" %> +<%= ENV["MYSQL_ROOT_HOST"] %>