bin/menu
#!/usr/bin/env ruby
require 'menu'
require 'optparse'
options = OpenStruct.new
options.payload = nil
options.component = nil
options.beta = false
options.verbose = false
options.release = nil
options.bucket = ENV['MENU_BUCKET']
optparse = OptionParser.new do|opts|
opts.banner = "Usage: menu [options] <payload>"
opts.on( '-c', '--component [NAME]', 'Select component') do |app|
options.component = app
end
opts.on( '-b', '--beta', 'Mark beta') do |flag|
options.beta = true
end
opts.on('-v', '--verbose', 'Verbose') do |v|
options.verbose = v
end
opts.on( '-r', '--release [NUM]', Integer, 'Set release #') do |v|
options.release = v
end
opts.on( '-h', '--help', 'Display this screen' ) do
puts opts
exit
end
end
begin
optparse.parse!
rescue OptionParser::InvalidOption => e
puts e
exit 1
end
unless ENV['MENU_SSL_URL']
puts "Missing SSL-enabled URL, please set $MENU_SSL_URL in environment"
exit 1
end
unless ENV['MENU_URL']
puts "Missing base URL, please set $MENU_URL in environment"
exit 1
end
unless options.bucket
puts "Missing bucket, please set $MENU_BUCKET in environment"
exit 1
end
unless options.component
puts "Missing component!"
exit 1
end
options.payload = ARGV.pop
unless options.payload
puts "Missing payload!"
exit 1
end
Menu::Runner.new(options).release