Class: VMC::App::Env

Inherits:
Base
  • Object
show all
Defined in:
lib/vmc/cli/app/env.rb

Constant Summary collapse

VALID_ENV_VAR =
/^[a-zA-Za-z_][[:alnum:]_]*$/

Instance Method Summary collapse

Methods inherited from Base

#app_status, #human_mb, #human_size, #megabytes, #memory_choices, #state_color

Methods inherited from CLI

#check_logged_in, #check_target, #client, client, client=, #client_target, #color_enabled?, #default_action, #ensure_config_dir, #err, #execute, #fail, #force?, #invalidate_client, #log_error, #name_list, #no_v2, #one_of, #precondition, #quiet?, #remove_target_info, #sane_target_url, #save_target_info, #save_targets, #set_target, #table, #target_file, #target_info, #targets_info, #tokens_file, #user_colors, #v2?, #verbose?

Methods included from Spacing

#indented, #justify, #line, #lines, #quiet?, #spaced, #start_line, #tabular, #text_width, #trim_escapes

Methods included from Interactive

#ask, #handler, #input_state, #list_choices, #prompt, #show_default

Instance Method Details

#envObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/vmc/cli/app/env.rb', line 12

def env
  app = input[:app]

  vars =
    with_progress("Getting env for #{c(app.name, :name)}") do |s|
      app.env
    end

  line unless quiet?

  vars.each do |name, val|
    line "#{c(name, :name)}: #{val}"
  end
end

#set_envObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/vmc/cli/app/env.rb', line 38

def set_env
  app = input[:app]
  name = input[:name]

  if value = input[:value]
    name = input[:name]
  elsif name["="]
    name, value = name.split("=")
  end

  unless name =~ VALID_ENV_VAR
    fail "Invalid variable name; must match #{VALID_ENV_VAR.inspect}"
  end

  with_progress("Updating #{c(app.name, :name)}") do
    app.env[name] = value
    app.update!
  end

  if app.started? && input[:restart]
    invoke :restart, :app => app
  end
end

#unset_envObject



72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/vmc/cli/app/env.rb', line 72

def unset_env
  app = input[:app]
  name = input[:name]

  with_progress("Updating #{c(app.name, :name)}") do
    app.env.delete(name)
    app.update!
  end

  if app.started? && input[:restart]
    invoke :restart, :app => app
  end
end