class YleTf::Action::TmpDir

Public Class Methods

new(app) click to toggle source
# File lib/yle_tf/action/tmpdir.rb, line 11
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/yle_tf/action/tmpdir.rb, line 15
def call(env)
  config = env[:config]

  tmpdir = Dir.mktmpdir(tmpdir_prefix(config))
  Logger.debug("Temporary Terraform directory: #{tmpdir}")

  Dir.chdir(tmpdir) do
    @app.call(env)
  end
ensure
  FileUtils.rm_rf(tmpdir, secure: true) if tmpdir && Dir.exist?(tmpdir)
end
tmpdir_prefix(config) click to toggle source
# File lib/yle_tf/action/tmpdir.rb, line 28
def tmpdir_prefix(config)
  if config
    "tf_#{config.module_dir.basename}_#{config.tf_env}_"
  else
    'tf_'
  end
end