#!/usr/bin/env ruby require 'optparse' require 'whiskey_disk/rake' $0 = "#{$0} setup|deploy" # jesus, this is a hack. options = {} op = OptionParser.new do |opts| opts.on('-t=TARGET', '--to=TARGET', "deployment target") do |target| options[:target] = target end opts.on('-p=TARGET', '--path=TARGET', "configuration path") do |path| options[:path] = path end opts.on_tail('-h', '--help', 'show this message') do raise opts.to_s end end rest = op.parse(ARGV) raise op.to_s unless options[:target] raise op.to_s unless rest and rest.size == 1 command = rest.first raise op.to_s unless ['deploy', 'setup'].include?(command) ENV['to'] = options[:target] ENV['path'] = options[:path] if command == 'deploy' Rake::Task['deploy:now'].invoke else Rake::Task['deploy:setup'].invoke end