27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# File 'lib/helm-push/command_line.rb', line 27
def run(args)
params = {}
ARGV << '-h' if ARGV.empty?
OptionParser.new do |o|
o.version = "#{BuildLabels::Builder::VERSION}"
usage = [
'helm-push -c docker-compose.yml -version-mask=\d+\.\d+\.\d+',
'cat docker-compose.yml | helm-push',
'helm-push < docker-compose.yml'
]
o.banner = "Version: #{o.version}\nUsage:\n\t#{usage.join "\n\t"}"
o.separator ''
o.separator 'Commands:'
COMMANDS.each { |name, cmd| o.separator "#{' ' * 5}#{name} - #{cmd.help}" }
o.separator ''
o.separator 'Options:'
o.on('-c', '--compose COMPOSE_FILE', 'Compose file')
o.on('-m', '--version-mask VERSION_MASK', 'Version mask')
o.on('-e', '--env FILE', 'Load .build_info FILE') { load_env _1 }
o.on('-n', '--no-env', 'Do not process env variables') { true }
COMMANDS.values.select{_1.options(o) if _1.respond_to? :options }
o.on('-h', '--help') { puts o; exit }
rest = o.parse! args, into: params
compose_text = File.read(params[:compose]) if params[:compose]
compose_text ||= STDIN.read unless $stdin.tty?
result = YamlMerge.parse_and_process_yaml compose_text
compose_text = YamlMerge.deep_copy_without_aliases result
rest = ['push'] if rest.empty?
rest.each do |command|
raise "Unknown command: #{command}" unless COMMANDS.key?(command.to_sym)
COMMANDS[command.to_sym].run params, compose_text
end
rescue => e
puts e.message
exit 1
end
end
|