class Subspace::Commands::Vars

Public Class Methods

new(args, options) click to toggle source
# File lib/subspace/commands/vars.rb, line 2
def initialize(args, options)
  @environment = args.first
  @action = if options.edit
    "edit"
  elsif options.create
    "create"
  else
    "view"
  end

  run
end

Public Instance Methods

create_local() click to toggle source
# File lib/subspace/commands/vars.rb, line 26
def create_local
  if File.exists? File.join(project_path, "config/application.yml")
    answer = ask "config/application.yml already exists. Reply 'yes' to overwrite: [no] "
    abort unless answer == "yes"
  end
  src = application_yml_template
  dest = "config/application.yml"
  vars_file = File.join(project_path, "config/provision/vars/#{@environment}.yml")
  extra_vars = "project_path=#{project_path} vars_file=#{vars_file} src=#{src} dest=#{dest}"
  ansible_command "ansible-playbook", File.join(playbook_dir, "local_template.yml"), "--extra-vars", extra_vars
  say "File created at config/application.yml with #{@environment} secrets"
  say "-------------------------------------------------------------------\n"

  system "cat", "config/application.yml"
end
run() click to toggle source
# File lib/subspace/commands/vars.rb, line 15
def run
  case @action
  when "create"
    create_local
  when "view", "edit"
    ansible_command "ansible-vault", @action, "vars/#{@environment}.yml"
  else
    abort "Invalid vars command"
  end
end

Private Instance Methods

application_yml_template() click to toggle source
# File lib/subspace/commands/vars.rb, line 44
def application_yml_template
  "config/provision/templates/application.yml.template"
end