Module: EasyCreds::Views::LocalMenu

Defined in:
lib/easy_creds/views/local_menu.rb

Class Method Summary collapse

Class Method Details

.ask(prompt, env) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/easy_creds/views/local_menu.rb', line 6

def self.ask(prompt, env)
  choices = [
    { name: "  #{Theme.bold('status')}      #{Theme.dim('')} show local overlay file + key presence",
      value: :status },
    { name: "  #{Theme.bold('init')}        #{Theme.dim('')} create #{env}_local.yml.enc + key",
      value: :init },
    { name: Theme.dim('  ─────────────────────────────────────────────'),
      value: nil, disabled: '' },
    { name: "  #{Theme.bold('edit')}        #{Theme.dim('')} interactive key-by-key editor (local)",
      value: :edit },
    { name: "  #{Theme.bold('editor-edit')} #{Theme.dim('')} open local YAML in $EDITOR",
      value: :editor_edit },
    { name: "  #{Theme.bold('sync-key')}    #{Theme.dim('')} push/pull #{env}_local.key to 1Password",
      value: :sync_key },
    { name: Theme.dim('  ─────────────────────────────────────────────'),
      value: nil, disabled: '' },
    { name: "  #{Theme.dim("delete      ─ remove #{env}_local.yml.enc + .key")}",
      value: :delete },
    { name: "  #{Theme.dim('back        ─ return to main menu')}",
      value: :back }
  ]

  prompt.select(
    "\nLocal overlay — #{Theme.env_tag(env)}:",
    choices,
    cycle: true,
    filter: false,
    per_page: choices.size
  )
end