Sha256: 0c61a40b549a2ccb9e099b83373dabc02f2d09b38e3fc45586e33de460d2519b
Contents?: true
Size: 1.47 KB
Versions: 2
Compression:
Stored size: 1.47 KB
Contents
require "fileutils" require "pathname" require "tmpdir" require "log4r" require "vagrant/util/platform" # This class manages an isolated environment for Vagrant to # run in. It creates a temporary directory to act as the # working directory as well as sets a custom home directory. # # This class also provides various helpers to create Vagrantfiles, # boxes, etc. class IsolatedEnvironment attr_reader :homedir attr_reader :workdir # Initializes an isolated environment. You can pass in some # options here to configure runing custom applications in place # of others as well as specifying environmental variables. # # @param [Hash] apps A mapping of application name (such as "vagrant") # to an alternate full path to the binary to run. # @param [Hash] env Additional environmental variables to inject # into the execution environments. def initialize @logger = Log4r::Logger.new("test::isolated_environment") # Create a temporary directory for our work @tempdir = Vagrant::Util::Platform.fs_real_path(Dir.mktmpdir("vagrant")) @logger.info("Initialize isolated environment: #{@tempdir}") # Setup the home and working directories @homedir = Pathname.new(File.join(@tempdir, "home")) @workdir = Pathname.new(File.join(@tempdir, "work")) @homedir.mkdir @workdir.mkdir end # This closes the environment by cleaning it up. def close @logger.info("Removing isolated environment: #{@tempdir}") FileUtils.rm_rf(@tempdir) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
vagrant-unbundled-1.8.1.2 | test/support/isolated_environment.rb |
vagrant-unbundled-1.8.1.1 | test/support/isolated_environment.rb |