Method: Fum::Commands::Launch#set_version

Defined in:
lib/fum/commands/launch.rb

#set_version(stage_decl, env_opt, options) ⇒ Object



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/fum/commands/launch.rb', line 86

def set_version(stage_decl, env_opt, options)
  version_label = stage_decl.version_label
  return nil if version_label.nil?

  if version_label.is_a?(String)
    env_opt[:version_label] = version_label
    puts "Using verison label #{version_label}"
  elsif version_label.is_a?(Hash) && version_label.has_key?(:from_stage)
    from_stage = version_label[:from_stage]
    from_stage_decl = stage(@application.main_decl, from_stage)
    analyzer = StageAnalyzer.new(from_stage_decl)
    analyzer.analyze(options)
    active = analyzer.active
    die "Cannot determine version to launch. No active environment for stage '#{from_stage}' specified." if active.nil?
    env_opt[:version_label] = active.version_label
    puts "Using version #{active.version_label} from stage #{from_stage}."
  else
    "Unknown version label #{version_label.inspect}"
  end


end