Class: VMC::App::Env

Inherits:
Base 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 V2CheckCLI

#fail_on_v2, #precondition

Methods inherited from CLI

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

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



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

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



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/vmc/cli/app/env.rb', line 33

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



64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/vmc/cli/app/env.rb', line 64

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