forked from auser/poolparty
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcloud
executable file
·63 lines (49 loc) · 2.03 KB
/
cloud
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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
#!/usr/bin/env ruby
$:.unshift(File.dirname(__FILE__) + "/../lib")
require "poolparty"
require 'git-style-binary/command'
GitStyleBinary.primary do
# self.class.send :include, Printing
@theme = :short
version "PoolParty release: #{PoolParty.version}"
banner <<-EOS
Usage: #{$0} #{all_options_string} COMMAND [ARGS]
The cloud subcommands commands are:
\#{GitStyleBinary.pretty_known_subcommands(:short).join(" ")}
See 'cloud help COMMAND' for more information on a specific command.
EOS
opt :clouds_dot_rb, "Set the clouds.rb file", :type => String, :default => "clouds.rb"
opt :very_verbose, "Set very verbose mode on", :type => :boolean, :default => false
opt :debug, "Debug the output", :type => :boolean, :default => false
opt :very_debug, "Set very debug mode on", :type => :boolean, :default => false
opt :name, "Name of the working cloud", :type => String, :default => nil
opt :chef_task, "Name of chef task to execute", :type => String, :default => 'default'
before_run do |command|
# Setup testing/debugging
$PP_VERBOSE = true if command[:verbose]
$VERY_VERBOSE = true if command[:very_verbose]
$DEBUGGING = true if command[:debug]
$VERY_DEBUGGING = true if command[:very_debug]
begin
require command[:clouds_dot_rb]
rescue LoadError => e
puts "Failed loading #{command[:clouds_dot_rb]}, try using -c to specify the location of your clouds.rb"
exit
end
pool.chef_step command[:chef_task].to_sym
@loaded_pool = pool
@loaded_clouds = command[:name] ? [pool.clouds[command[:name]]] : pool.clouds.map {|name,cld|cld}
if @loaded_clouds.size == 0
puts "No clouds loaded. Check your clouds.rb or -n option"
exit
end
end
run do |command|
subcommands = GitStyleBinary.list_subcommands
puts "cloud %s" % PoolParty.version
puts "Usage: cloud COMMAND [ARGS]
The cloud subcommands commands are:
#{subcommands}
See 'cloud help COMMAND' for more information on a specific command"
end
end