class Prepd::Workspace

Attributes

name[RW]

Public Instance Methods

create_workspace() click to toggle source
# File lib/prepd/models/workspace.rb, line 19
def create_workspace
  Dir.chdir(Prepd.config.working_dir) do
    FileUtils.rm_rf(name) if Prepd.config.force
    FileUtils.mkdir_p(name)
  end
end
directory_cannot_exist() click to toggle source
# File lib/prepd/models/workspace.rb, line 10
def directory_cannot_exist
  return if Prepd.config.force
  errors.add(:directory_exists, requested_dir) if Dir.exists?(requested_dir)
end
initialize_workspace() click to toggle source
# File lib/prepd/models/workspace.rb, line 26
def initialize_workspace
  Dir.chdir(requested_dir) do
    File.open('prepd-workspace.yml', 'w') { |f| f.write("---\nname: #{name}\n") }
    Prepd.register_workspace(Dir.pwd)
    FileUtils.cp_r("#{Prepd.files_dir}/workspace/.", '.')
    Dir.chdir('developer') do
      File.open('vars.yml', 'w') do |f|
        f.puts("---\ngit_user:")
        f.puts("  name: #{`git config --get user.name`.chomp}")
        f.puts("  email: #{`git config --get user.email`.chomp}")
      end
      Prepd.write_password_file('vault-password.txt')
      FileUtils.touch('vault.yml')
      system('ansible-vault encrypt vault.yml')
    end
    # NOTE: remove after testing
    # Dir.chdir('machines') do
    #   FileUtils.mkdir('packer_cache')
    #   Dir.chdir('packer_cache') do
    #     FileUtils.cp('/tmp/50e697ab8edda5b0ac5ba2482c07003d2ff037315c7910af66efd3c28d23ed51.iso', '.')
    #   end
    # end
  end
end
requested_dir() click to toggle source
# File lib/prepd/models/workspace.rb, line 15
def requested_dir
  "#{Prepd.config.working_dir}/#{name}"
end