module Dapp::Dimg::Image::Argument

Attributes

bash_commands[R]
change_options[R]
options[R]
service_bash_commands[R]
service_change_options[R]

Public Instance Methods

add_change_cmd(value) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 21
def add_change_cmd(value)
  add_change_option(:cmd, value)
end
add_change_entrypoint(value) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 25
def add_change_entrypoint(value)
  add_change_option(:entrypoint, value)
end
add_change_env(**options) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 13
def add_change_env(**options)
  (change_options[:env] ||= {}).merge!(options)
end
add_change_expose(value) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 9
def add_change_expose(value)
  add_change_option(:expose, value)
end
add_change_label(**options) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 17
def add_change_label(**options)
  (change_options[:label] ||= {}).merge!(options)
end
add_change_onbuild(value) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 29
def add_change_onbuild(value)
  add_change_option(:onbuild, value)
end
add_change_user(value) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 37
def add_change_user(value)
  change_options[:user] = value
end
add_change_volume(value) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 5
def add_change_volume(value)
  add_change_option(:volume, value)
end
add_change_workdir(value) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 33
def add_change_workdir(value)
  change_options[:workdir] = value
end
add_command(*commands) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 57
def add_command(*commands)
  @bash_commands.concat(commands.flatten)
end
add_env(**options) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 45
def add_env(**options)
  (self.options[:env] ||= {}).merge!(options)
end
add_service_change_label(**options) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 41
def add_service_change_label(**options)
  (service_change_options[:label] ||= {}).merge!(options)
end
add_service_command(*commands) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 61
def add_service_command(*commands)
  @service_bash_commands.concat(commands.flatten)
end
add_volume(value) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 49
def add_volume(value)
  add_option(:volume, value)
end
add_volumes_from(value) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 53
def add_volumes_from(value)
  add_option(:'volumes-from', value)
end
prepare_instructions(options) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 65
def prepare_instructions(options)
  options.map do |key, vals|
    case key
    when :workdir, :user
      [vals]
    when :cmd, :entrypoint
      vals = [''] if vals == [] && ::Dapp::Dapp.host_docker_minor_version >= Gem::Version.new('17.10')
      [vals]
    when :env, :label then options_to_args(vals)
    else vals
    end.map { |val| %(#{key.to_s.upcase} #{val}) }
  end.flatten
end

Protected Instance Methods

add_change_option(key, value) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 90
def add_change_option(key, value)
  add_option_default(change_options, key, value)
end
add_option(key, value) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 86
def add_option(key, value)
  add_option_default(options, key, value)
end
add_option_default(hash, key, value) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 98
def add_option_default(hash, key, value)
  hash[key] = (hash[key].nil? ? [value] : (hash[key] << value)).flatten
end
add_service_change_option(key, value) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 94
def add_service_change_option(key, value)
  add_option_default(service_change_options, key, value)
end
options_to_args(options) click to toggle source
# File lib/dapp/dimg/image/argument.rb, line 102
def options_to_args(options)
  options.map { |key, value| "#{key}=#{value}" }
end