52 lines
1.1 KiB
Plaintext
52 lines
1.1 KiB
Plaintext
|
#!/usr/bin/env ruby
|
||
|
|
||
|
require 'optparse'
|
||
|
require File.expand_path(File.dirname(__FILE__)) + '/../lib/couchrest'
|
||
|
|
||
|
options = {
|
||
|
:loud => true,
|
||
|
}
|
||
|
|
||
|
opts = OptionParser.new do |opts|
|
||
|
opts.banner = "Usage: #$0 [options] (push|pull|generate)"
|
||
|
opts.on('-q', '--quiet', "Omit extra debug info") do
|
||
|
options[:loud] = false
|
||
|
end
|
||
|
opts.on_tail('-h', '--help', "Display detailed help and exit") do
|
||
|
puts opts
|
||
|
exit
|
||
|
end
|
||
|
end
|
||
|
|
||
|
opts.parse!(ARGV)
|
||
|
|
||
|
case ARGV.shift
|
||
|
when /generate/
|
||
|
appname = ARGV.shift
|
||
|
current = Dir.getwd
|
||
|
appdir = File.join(current, appname)
|
||
|
puts "generating couchapp in #{appdir}"
|
||
|
CouchRest::FileManager.generate_app(appdir)
|
||
|
|
||
|
when /push/
|
||
|
dirname = ARGV.shift
|
||
|
if ARGV.length == 2
|
||
|
appname = ARGV.shift
|
||
|
dbstring = ARGV.shift
|
||
|
elsif ARGV.length == 1
|
||
|
appname = dirname
|
||
|
dbstring = ARGV.shift
|
||
|
else
|
||
|
puts opts
|
||
|
puts "push dirname [appname] database"
|
||
|
exit(0)
|
||
|
end
|
||
|
dbspec = CouchRest.parse(dbstring)
|
||
|
fm = CouchRest::FileManager.new(dbspec[:database], dbspec[:host])
|
||
|
fm.push_app(dirname, appname)
|
||
|
when /pull/
|
||
|
|
||
|
else
|
||
|
puts opts
|
||
|
puts "please specify a command"
|
||
|
end
|