class Ridoku::Env

Attributes

environment[RW]

Public Instance Methods

run() click to toggle source
# File lib/ridoku/env.rb, line 17
def run
  command = Base.config[:command]
  sub_command = (command.length > 0 && command[1]) || nil

  environment = load_environment

  case sub_command
  when 'list', nil
    list
  when 'set', 'add'
    set
  when 'push'
    push
  when 'delete', 'remove', 'rm'
    delete
  else
    print_env_help
  end
end

Protected Instance Methods

delete() click to toggle source
# File lib/ridoku/env.rb, line 109
def delete
  ARGV.each do |key|
    value = environment.delete(key)
    $stdout.puts "Deleting key: #{key}, '#{value}'"
  end
  
  Base.save_stack
end
list() click to toggle source
# File lib/ridoku/env.rb, line 83
def list
  if environment.keys.length == 0
    $stdout.puts 'Environment Empty!'
  else
    $stdout.puts 'Environment:'
    environment.each do |key, value|
      $stdout.puts "  #{$stdout.colorize(key, :bold)}: '#{value}'"
    end
  end
end
load_environment() click to toggle source
# File lib/ridoku/env.rb, line 39
def load_environment
  Base.fetch_stack
  Base.fetch_app
  self.environment =
    Base.custom_json['deploy'][Base.app[:shortname]]['app_env']
end
print_env_help() click to toggle source
push() click to toggle source
# File lib/ridoku/env.rb, line 68
def push
  $stdout.puts "Pushing current environment..."

  Base.standard_deploy(['rails-app','workers'],
    {
      opsworks_custom_cookbooks: {
        recipes: [
          "workers::default",
          "deploy::environment"
        ]
      }
    }
  )
end
set() click to toggle source
# File lib/ridoku/env.rb, line 94
def set
  ARGV.each do |kvpair|
    kvpair.match(%r((^[^:]+):(.*))) do |m|
      key = m[1]
      value = m[2]

      update = environment.key?(key)
      environment[key] = value
      $stdout.puts "#{update && 'Updating' || 'Adding'}: #{key} as '#{value}'"
    end
  end

  Base.save_stack
end