Class: Dapp::Controller

Inherits:
Object
  • Object
show all
Includes:
Helper::Log, Helper::Shellout
Defined in:
lib/dapp/controller.rb

Overview

Controller

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Helper::Shellout

included, #shellout, #shellout!, #shellout_pack

Methods included from Helper::Log

included, #log, #log_format_string, #log_indent, #log_indent_next, #log_indent_prev, #log_info, #log_secondary, #log_step, #log_time, #log_with_indent, #with_log_indent

Constructor Details

#initialize(cli_options: {}, patterns: nil) ⇒ Controller

Returns a new instance of Controller.



9
10
11
12
13
14
15
16
17
18
# File 'lib/dapp/controller.rb', line 9

def initialize(cli_options: {}, patterns: nil)
  @cli_options = cli_options
  @cli_options[:log_indent] = 0

  @patterns = patterns || []
  @patterns << '*' unless @patterns.any?

  paint_initialize
  Helper::I18n.initialize
end

Instance Attribute Details

#cli_options ⇒ Object (readonly)

Returns the value of attribute cli_options.



7
8
9
# File 'lib/dapp/controller.rb', line 7

def cli_options
  @cli_options
end

#patterns ⇒ Object (readonly)

Returns the value of attribute patterns.



7
8
9
# File 'lib/dapp/controller.rb', line 7

def patterns
  @patterns
end

Instance Method Details

#build ⇒ Object



25
26
27
28
29
30
31
32
# File 'lib/dapp/controller.rb', line 25

def build
  build_configs.each do |config|
    log_step(config._name)
    with_log_indent do
      Application.new(config: config, cli_options: cli_options).build!
    end
  end
end

#list ⇒ Object



34
35
36
# File 'lib/dapp/controller.rb', line 34

def list
  build_configs.each { |config| log(config._name) }
end

#push(repo) ⇒ Object

Raises:



38
39
40
41
# File 'lib/dapp/controller.rb', line 38

def push(repo)
  raise Error::Controller, code: :push_command_unexpected_apps_number unless build_configs.one?
  Application.new(config: build_configs.first, cli_options: cli_options, ignore_git_fetch: true).export!(repo)
end

#run(docker_options, command) ⇒ Object

Raises:



20
21
22
23
# File 'lib/dapp/controller.rb', line 20

def run(docker_options, command)
  raise Error::Controller, code: :run_command_unexpected_apps_number unless build_configs.one?
  Application.new(config: build_configs.first, cli_options: cli_options, ignore_git_fetch: true).run(docker_options, command)
end

#smartpush(repo_prefix) ⇒ Object



43
44
45
46
47
48
49
# File 'lib/dapp/controller.rb', line 43

def smartpush(repo_prefix)
  build_configs.each do |config|
    log_step(config._name)
    repo = File.join(repo_prefix, config._name)
    with_log_indent { Application.new(config: config, cli_options: cli_options, ignore_git_fetch: true).export!(repo) }
  end
end

#stages_cleanup ⇒ Object



55
56
57
# File 'lib/dapp/controller.rb', line 55

def stages_cleanup
  shellout(%{docker rmi $(docker images -f "dangling=true" -f "label=dapp=#{build_configs.first._basename}" -q)})
end

#stages_flush ⇒ Object



51
52
53
# File 'lib/dapp/controller.rb', line 51

def stages_flush
  shellout(%{docker rmi $(docker images --format="{{.Repository}}:{{.Tag}}" #{build_configs.first._basename}-dappstage)})
end