rudy 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. data/CHANGES.txt +28 -5
  2. data/README.rdoc +1 -1
  3. data/Rudyfile +51 -19
  4. data/bin/ird +153 -0
  5. data/bin/rudy +18 -23
  6. data/bin/rudy-ec2 +5 -10
  7. data/bin/rudy-s3 +1 -3
  8. data/bin/rudy-sdb +0 -2
  9. data/examples/README.md +10 -0
  10. data/examples/debian-sinatra-passenger/commands.rb +19 -0
  11. data/examples/debian-sinatra-passenger/machines.rb +32 -0
  12. data/examples/debian-sinatra-passenger/routines.rb +30 -0
  13. data/examples/debian-sinatra-thin/commands.rb +17 -0
  14. data/examples/debian-sinatra-thin/machines.rb +35 -0
  15. data/examples/debian-sinatra-thin/routines.rb +72 -0
  16. data/lib/rudy.rb +8 -17
  17. data/lib/rudy/aws.rb +1 -2
  18. data/lib/rudy/aws/ec2/address.rb +0 -1
  19. data/lib/rudy/aws/ec2/snapshot.rb +11 -0
  20. data/lib/rudy/aws/s3.rb +6 -3
  21. data/lib/rudy/cli.rb +12 -2
  22. data/lib/rudy/cli/aws/ec2/candy.rb +19 -48
  23. data/lib/rudy/cli/aws/ec2/images.rb +109 -122
  24. data/lib/rudy/cli/aws/s3/buckets.rb +1 -2
  25. data/lib/rudy/cli/config.rb +13 -0
  26. data/lib/rudy/cli/disks.rb +24 -1
  27. data/lib/rudy/cli/routines.rb +10 -11
  28. data/lib/rudy/config.rb +6 -9
  29. data/lib/rudy/config/objects.rb +4 -0
  30. data/lib/rudy/global.rb +4 -5
  31. data/lib/rudy/huxtable.rb +23 -8
  32. data/lib/rudy/machines.rb +11 -4
  33. data/lib/rudy/metadata.rb +8 -94
  34. data/lib/rudy/metadata/backup.rb +113 -0
  35. data/lib/rudy/metadata/backups.rb +65 -0
  36. data/lib/rudy/{disks.rb → metadata/disk.rb} +36 -69
  37. data/lib/rudy/metadata/disks.rb +67 -0
  38. data/lib/rudy/metadata/objectbase.rb +104 -0
  39. data/lib/rudy/mixins.rb +2 -0
  40. data/lib/rudy/routines.rb +173 -88
  41. data/lib/rudy/routines/helpers/dependshelper.rb +34 -0
  42. data/lib/rudy/routines/helpers/diskhelper.rb +174 -5
  43. data/lib/rudy/routines/helpers/scmhelper.rb +2 -2
  44. data/lib/rudy/routines/helpers/scripthelper.rb +11 -4
  45. data/lib/rudy/routines/passthrough.rb +3 -1
  46. data/lib/rudy/routines/reboot.rb +75 -0
  47. data/lib/rudy/routines/startup.rb +3 -3
  48. data/lib/rudy/scm/git.rb +17 -17
  49. data/lib/rudy/scm/svn.rb +46 -5
  50. data/lib/rudy/utils.rb +3 -2
  51. data/rudy.gemspec +24 -46
  52. data/test/30_sdb_metadata/10_disks_test.rb +5 -5
  53. metadata +36 -68
  54. data/lib/annoy.rb +0 -298
  55. data/lib/console.rb +0 -404
  56. data/lib/escape.rb +0 -305
  57. data/lib/rudy/backup.rb +0 -135
  58. data/lib/storable.rb +0 -292
  59. data/lib/sysinfo.rb +0 -285
  60. data/lib/tryouts.rb +0 -33
  61. data/vendor/highline-1.5.1/CHANGELOG +0 -222
  62. data/vendor/highline-1.5.1/INSTALL +0 -35
  63. data/vendor/highline-1.5.1/LICENSE +0 -7
  64. data/vendor/highline-1.5.1/README +0 -63
  65. data/vendor/highline-1.5.1/Rakefile +0 -82
  66. data/vendor/highline-1.5.1/TODO +0 -6
  67. data/vendor/highline-1.5.1/examples/ansi_colors.rb +0 -38
  68. data/vendor/highline-1.5.1/examples/asking_for_arrays.rb +0 -18
  69. data/vendor/highline-1.5.1/examples/basic_usage.rb +0 -75
  70. data/vendor/highline-1.5.1/examples/color_scheme.rb +0 -32
  71. data/vendor/highline-1.5.1/examples/limit.rb +0 -12
  72. data/vendor/highline-1.5.1/examples/menus.rb +0 -65
  73. data/vendor/highline-1.5.1/examples/overwrite.rb +0 -19
  74. data/vendor/highline-1.5.1/examples/page_and_wrap.rb +0 -322
  75. data/vendor/highline-1.5.1/examples/password.rb +0 -7
  76. data/vendor/highline-1.5.1/examples/trapping_eof.rb +0 -22
  77. data/vendor/highline-1.5.1/examples/using_readline.rb +0 -17
  78. data/vendor/highline-1.5.1/lib/highline.rb +0 -758
  79. data/vendor/highline-1.5.1/lib/highline/color_scheme.rb +0 -120
  80. data/vendor/highline-1.5.1/lib/highline/compatibility.rb +0 -17
  81. data/vendor/highline-1.5.1/lib/highline/import.rb +0 -43
  82. data/vendor/highline-1.5.1/lib/highline/menu.rb +0 -395
  83. data/vendor/highline-1.5.1/lib/highline/question.rb +0 -463
  84. data/vendor/highline-1.5.1/lib/highline/system_extensions.rb +0 -193
  85. data/vendor/highline-1.5.1/setup.rb +0 -1360
  86. data/vendor/highline-1.5.1/test/tc_color_scheme.rb +0 -56
  87. data/vendor/highline-1.5.1/test/tc_highline.rb +0 -823
  88. data/vendor/highline-1.5.1/test/tc_import.rb +0 -54
  89. data/vendor/highline-1.5.1/test/tc_menu.rb +0 -429
  90. data/vendor/highline-1.5.1/test/ts_all.rb +0 -15
data/CHANGES.txt CHANGED
@@ -7,30 +7,53 @@ RUDY, CHANGES
7
7
  * TODO: Support for product codes
8
8
  * TODO: Tests for AWS HTTPS
9
9
 
10
+ #### 0.7.4 (2009-05-10) ###############################
10
11
 
11
- #### 0.7.2 (2009-04-04) ###############################
12
+ * CHANGE: Keypairs now include zone. This was necessary to allow US and EU keypairs to
13
+ be stored in the same directory.
14
+ * CHANGE: Moved non-rudy specific modules to separate projects (storable, sysinfo, annoy, console -> Drydock, escape -> Rye, tryouts -> tryouts/).
15
+ * CHANGE: Renamed restart routine to reboot to make it clear it's about the machine
16
+ * CHANGE: Renamed Rudy::Disk to Rudy::MetaData::Disk
17
+ * CHANGE: Short alias for rudy-ec2 snapshot is now 's' (instead of 't')
18
+ * CHANGE: Removed highline-1.5.1 from vendor (it's now available as a gem)
19
+ * FIXED: Bug in Huxtable when loading global. Wasn't reloaded after config was updated.
20
+ * FIXED: Closed gh-12 (thanks sabat)
21
+ * ADDED: Routines now support dependencies
22
+ * ADDED: Disk routines now support mount, umount, snapshot, and restore
23
+ * ADDED: rudy disk command now displays backups with -b switch
24
+ * ADDED: RE-added basic support for creating Linux images (with security warning)
25
+ * ADDED: Routines with underscores can now be called with dashes (a_routine vs a-routine)
26
+
27
+
28
+ #### 0.7.3 (2009-05-05) ###############################
29
+
30
+ * FIXED: Corrected a few minor interface errors in rudy-ec2
31
+ * ADDED: rudy-ec2 console can now display the decoded admin password for Windows instances.
32
+
33
+
34
+ #### 0.7.2 (2009-05-04) ###############################
12
35
 
13
36
  * FIXED: cli/routine.rb release method wasn't sending command alias (which broke rerelease)
14
37
  * ADDED: global.offline for being cool when Internet is down
15
38
  * ADDED: Better handling in aws/sdb when call returns nil (Internet is down)
16
39
 
17
40
 
18
- #### 0.7.1 (2009-04-04) ###############################
41
+ #### 0.7.1 (2009-05-04) ###############################
19
42
 
20
43
  * FIXED: rudy wasn't honouring -C option for specifying a config file
21
44
  * FIXED: Was disabling, but not enabling colour
22
45
  * FIXED: Symbol errors in 1.8
23
46
  * FIXED: Command blocks for root user are always run first now in Routines config.
24
- * ADDED: "script" keyword to routines config.
25
47
  * CHANGE: routines before, after, and script blocks are now processed by Rye::Box.batch as Procs.
26
48
  * CHANGE: deny was removed from commands config (it will come back later).
27
- * ADDED: examples/
28
49
  * CHANGE: Rudy now checks the current working directory for machines, commands, etc... configs
50
+ * ADDED: examples/
51
+ * ADDED: "script" keyword to routines config.
29
52
  * ADDED: script_local
30
53
  * ADDED: Routine now checks whether there are any remote tasks. If not, it doesn't loop through machines.
31
54
 
32
55
 
33
- #### 0.7.0 (2009-04-02) ###############################
56
+ #### 0.7.0 (2009-05-02) ###############################
34
57
 
35
58
  * CHANGE: Upgrade to Drydock 0.6, Caesars 0.6, and Rye 0.6
36
59
  * CHANGE: Updated Routines configuration syntax for specifying shell commands
data/README.rdoc CHANGED
@@ -87,6 +87,7 @@ NOTE: <em>If you are not installing via RubyGems, you need to make sure the depe
87
87
  * Jamis Buck for Net::SSH and friends
88
88
  * Glenn Rempe for amazon-ec2
89
89
  * Marcel Molina Jr. for aws-s3
90
+ * sabat[http://github.com/sabat]
90
91
  * Keshia Knight Pulliam
91
92
 
92
93
 
@@ -102,7 +103,6 @@ I'm very open to contributions!
102
103
 
103
104
  * Delano Mandelbaum (delano@solutious.com)
104
105
  * Rudy::AWS::SDB adapted from aws_sdb by Tim Dysinger (http://dysinger.net)
105
- * Escape, Copyright (C) 2006,2007 Tanaka Akira <akr@fsij.org>
106
106
 
107
107
 
108
108
  == License
data/Rudyfile CHANGED
@@ -1,4 +1,4 @@
1
- # = Rudy -- Example configuration
1
+ # = Rudy -- Skeleton configuration
2
2
  #
3
3
  # Rudy automatically looks for configuration files in the following
4
4
  # locations (in this order):
@@ -7,6 +7,7 @@
7
7
  # ~/.rudy/config
8
8
  #
9
9
  # ./Rudyfile
10
+ # ./machines.rb, ./routines.rb, ./commands.rb
10
11
  # ./config/rudy/*.rb
11
12
  # ./.rudy/*.rb
12
13
  # /etc/rudy/*.rb
@@ -23,15 +24,14 @@
23
24
  #
24
25
 
25
26
  # --------------------------------------------------------- MACHINES --------
26
- # The machines block describes the "physical" characteristics
27
- # of your environments.
27
+ # The machines block describes the "physical" characteristics of your machines.
28
28
  machines do
29
29
 
30
30
  zone :"us-east-1b" do
31
- ami 'ami-235fba4a' # Amazon Getting Started AMI (US)
31
+ ami 'ami-e348af8a' # Alestic Debian 5.0, 32-bit (US)
32
32
  end
33
33
  zone :"eu-west-1b" do
34
- ami 'ami-e40f2790' # Amazon Getting Started AMI (EU)
34
+ ami 'ami-6ecde51a' # Alestic Debian 5.0, 32-bit (EU)
35
35
  end
36
36
 
37
37
  hostname :rudy # One of: :default, :rudy, "your-name"
@@ -40,8 +40,7 @@ machines do
40
40
  # The configuration inside the env block is available to all its
41
41
  # roles. The configuration inside the role blocks is available only
42
42
  # to machines in that specific role.
43
- env :stage do
44
- ami "ami-e348af8a" # Debian 5.0, 32-bit (Alestic)
43
+ env :stage, :prod do
45
44
  size 'm1.small' # EC2 machine type for all machines
46
45
  # in the "stage" environment
47
46
  role :app do
@@ -103,17 +102,17 @@ end
103
102
  # To run a routine, specify its name on the command-line: rudy startup
104
103
  routines do
105
104
 
106
- env :stage do # We'll define routines for the
107
- role :app do # stage-app machine group
105
+ env :stage, :prod do # We'll define routines for the stage-app
106
+ role :app do # and prod-app machine groups
108
107
 
109
108
  startup do # $ rudy startup
110
109
  adduser :rudy # Create a user called "rudy"
111
110
  authorize :rudy # Enable passwordless logins as rudy
112
-
111
+ #
113
112
  disks do # Define EBS volume routines
114
113
  create "/rudy/disk1" # Create an EBS volume, attach it, give
115
114
  end # it a filesystem, and mount it.
116
-
115
+ #
117
116
  after :rudy do # Run remote SSH commands after startup
118
117
  mkdir :p, "great" # $ mkdir -p great
119
118
  touch "great/scott" # $ touch great/scott
@@ -123,30 +122,63 @@ routines do
123
122
 
124
123
  shutdown do # $ rudy shutdown
125
124
  before :root do # Run remote SSH commands before shutdown
126
- #mysqld_initd
127
- end
128
-
125
+ uptime
126
+ end
129
127
  disks do
130
128
  destroy "/rudy/disk1" # Unmount and destroy the EBS volume
131
129
  end
132
130
  end
133
-
131
+
132
+ reboot do # $ rudy reboot
133
+ before :root do # Run any pre-reboot tasks like stopping
134
+ uptime # web servers and databases.
135
+ end #
136
+ after :root do # Run any startup tasks like starting
137
+ uptime # processes or initializing the filesystem
138
+ end
139
+ end
140
+
141
+ backup do # $ rudy backup
142
+ disks do # A simple routine that creates an EBS
143
+ snapshot "/rudy/disk1" # snapshot of the specified volume.
144
+ end
145
+ end
146
+
147
+ restore_example do # $ rudy restore_example
148
+ disks do # A contrived example of restoring a
149
+ destroy "/rudy/disk1" # disk from a backup. NOTE: You'll need
150
+ restore "/rudy/disk1" # to run "rudy backup" at least once
151
+ end # before otherise there are no backups
152
+ end # to restore from.
153
+
134
154
  end
135
155
  end
136
156
 
137
- # Define global routines available
138
- # to every environment and role.
157
+ # Define global routines available to all machine groups
158
+ # This routine will update a basic Debian machine and
159
+ # install essential libraries.
160
+ # See examples/ for more.
139
161
  sysupdate do # $ rudy sysupdate
140
162
  before :root do
141
163
  apt_get "update" # Update debian / ubuntu
142
- apt_get "install", "apache2-prefork-dev", "libapr1-dev"
143
164
  apt_get "install", "build-essential", "sqlite3", "libsqlite3-dev"
165
+ apt_get "install", "apache2-prefork-dev", "libapr1-dev"
144
166
  gem_install 'rudy'
145
167
  end
146
168
  end
147
169
 
148
- # Define your own routines
149
170
  anything do # $ rudy anything
171
+ before :display_uptime # Specify a dependency
172
+ script Rudy.sysinfo.user do # This is Ruby, so any valid syntax
173
+ ls :l, Rudy.sysinfo.home # can be used in the definitions.
174
+ end # See: SysInfo gem for more info.
150
175
  end
176
+
177
+ display_uptime do # $ rudy display-uptime
178
+ script Rudy.sysinfo.user do # NOTE: You can use 'dashes' on the
179
+ uptime # command-line instead of underscores
180
+ end
181
+ end
182
+
151
183
  end
152
184
 
data/bin/ird ADDED
@@ -0,0 +1,153 @@
1
+ #!/usr/bin/ruby
2
+
3
+ # = Interactive Rudy (experimental)
4
+ #
5
+ # === Not your granparent's deployment tool
6
+ #
7
+ # See ird -h for usage
8
+ #
9
+
10
+ $:.unshift File.join(File.dirname(__FILE__), '..', 'lib') # Put our local lib in first place
11
+ $:.unshift File.join(File.dirname(__FILE__), '..', 'vendor', 'highline-1.5.1', 'lib')
12
+ %w{drydock caesars rye}.each { |dir| $:.unshift File.join(File.dirname(__FILE__), '..', '..', dir, 'lib') }
13
+ require 'rubygems'
14
+
15
+ # SEE: http://github.com/rubyspec/matzruby/blob/a34130eb7c4ecc164115a59aa1b76c643bd98202/lib/irb/xmp.rb
16
+ # SEE: http://github.com/blackwinter/wirble/tree/master
17
+ require "irb"
18
+ require 'irb/completion'
19
+
20
+ require 'rudy'
21
+ require 'drydock'
22
+ require 'rudy/cli'
23
+
24
+
25
+ class RudyCLI_Interactive < Rudy::CLI::Base # :nodoc:all
26
+
27
+ include Readline
28
+
29
+ default :interactive
30
+ debug :off
31
+ about "An interactive REPL for Rudy."
32
+ usage "#{$0} [global options]"
33
+ command :interactive do |obj|
34
+
35
+ @@rmach = Rudy::Machines.new(:global => obj.global)
36
+ @@rkey = Rudy::KeyPairs.new(:global => obj.global)
37
+ @@rgrp = Rudy::Groups.new(:global => obj.global)
38
+ @@rvol = Rudy::Volumes.new(:global => obj.global)
39
+ @@radd = Rudy::Addresses.new(:global => obj.global)
40
+
41
+ puts Rudy::CLI.generate_header(@@rmach.global, @@rmach.config)
42
+ puts Rudy::Utils.without_indent(%Q`
43
+ ------------------------------------------------------------
44
+ Welcome Interactive Rudy! (EXPERIMENTAL)
45
+ ------------------------------------------------------------
46
+
47
+ `)
48
+ h
49
+
50
+ # What's the deal with this error message when defining a help method?
51
+ # => rb: warn: can't alias help from irb_help
52
+ if __FILE__ == $0
53
+ IRB.start(__FILE__)
54
+ else
55
+ # check -e option
56
+ if /^-e$/ =~ $0
57
+ IRB.start(__FILE__)
58
+ else
59
+ IRB.start(__FILE__)
60
+ end
61
+ end
62
+
63
+ end
64
+
65
+
66
+
67
+
68
+ def h;
69
+ puts (%Q`
70
+ HELP
71
+
72
+ h Help (this screen)
73
+ m Rudy::Machines instance
74
+ g Rudy::Groups instance
75
+ k Rudy::KeyPairs instance
76
+ v Rudy::Volumes instance
77
+ a Rudy::Addresses instance
78
+ ssh [GROUP] Connect to a machine
79
+ example Start an EC2 instance from scratch.
80
+ `)
81
+ end
82
+ def example
83
+ puts (%Q`
84
+ EXAMPLE
85
+ Start an EC2 instance from scratch.
86
+
87
+ # Create a security group
88
+ >> g.create
89
+ => #<Rudy::AWS::EC2::Group @name="stage-app" ...>
90
+
91
+ # Create a keypair (used to login as root)
92
+ >> k.create
93
+ => #<Rudy::AWS::EC2::KeyPair @name="key-stage-app" ...>
94
+
95
+ # Start an EC2 machine instance:
96
+ >> m.create
97
+ Instance: i-228def51
98
+ Waiting for the instance to startup
99
+ ........It's up!
100
+
101
+ # Login to the new instance
102
+ >> ssh
103
+
104
+ All commands in Rudy refer to the global defaults unless
105
+ otherwise specified. "stage" is the default environment and
106
+ "app" is the default role. You can change these with command
107
+ line arguments or by modifying the defaults in your Rudy
108
+ config file: #{@@rmach.config_dirname}
109
+
110
+ You can also specify your own names by providing
111
+ one as the first argument: g.create 'group5000'.
112
+
113
+ # List instances in stage-app
114
+ >> m.list :running
115
+ => [#<Rudy::AWS::EC2::Instance:0x18c5888 ...>]
116
+
117
+ # Print the instance in a human readable way
118
+ >> puts m.list.first.to_s
119
+
120
+ # Print instance system console output
121
+ >> puts m.console
122
+
123
+ # Destroy ALL INSTANCES in stage-app
124
+ >> m.destroy
125
+ `)
126
+ end
127
+
128
+ def m; @@rmach; end
129
+ def k; @@rkey; end
130
+ def g; @@rgrp; end
131
+ def v; @@rvol; end
132
+ def a; @@radd; end
133
+
134
+ # Change Group
135
+ #def cg(name); end
136
+
137
+ def ssh(*args)
138
+ @@rmach.switch_user :root
139
+ @@rmach.connect(*args)
140
+ @@rmach.switch_user # back to previous user
141
+ nil
142
+ end
143
+
144
+
145
+ end
146
+
147
+ #include RudyCLI_Interactive # So we don't have to say CLI.example in the REPL.
148
+
149
+
150
+ __END__
151
+ #@rbox = Rye::Box.new('ec2-174-129-173-3.compute-1.amazonaws.com', 'root')
152
+ #@rbox2 = Rye::Box.new('ec2-174-129-173-3.compute-1.amazonaws.com', 'root')
153
+ #@rbox.add_keys('/Users/delano/Projects/git/rudy/.rudy/key-test-app.private')
data/bin/rudy CHANGED
@@ -9,8 +9,7 @@
9
9
  #
10
10
 
11
11
  $:.unshift File.join(File.dirname(__FILE__), '..', 'lib') # Put our local lib in first place
12
- $:.unshift File.join(File.dirname(__FILE__), '..', 'vendor', 'highline-1.5.1', 'lib')
13
- #%w{net-ssh amazon-ec2 caesars drydock rye}.each { |dir| $:.unshift File.join(File.dirname(__FILE__), '..', '..', dir, 'lib') }
12
+ $:.unshift File.join(File.dirname(__FILE__), '..', '..', 'drydock', 'lib')
14
13
  #require 'rubygems'
15
14
 
16
15
  #$SAFE = 1 # require is unsafe in Ruby 1.9??
@@ -19,7 +18,6 @@ require 'drydock'
19
18
  require 'rudy'
20
19
  require 'rudy/cli'
21
20
 
22
-
23
21
  # Command-line interface for /bin/rudy
24
22
  class RudyCLI < Rudy::CLI::Base
25
23
 
@@ -37,26 +35,17 @@ class RudyCLI < Rudy::CLI::Base
37
35
 
38
36
  # ------------------------------------------ RUDY OBJECTS --------
39
37
  # ------------------------------------------------------------------
40
-
41
- #usage "rudy [global options] backups [-C] [disk name]"
42
- #about "Manage Backups"
43
- #option :s, :snapshot, String, "Create a backup entry from an existing snapshot"
44
- #action :Z, :sync, "Check for and delete backup metadata with no snapshot. DOES NOT delete snapshots."
45
- ##action :T, :tidy, "Tidy existing backups"
46
- #action :D, :destroy, "Destroy a backup and DELETE its snapshots."
47
- #action :C, :create, "Create a backup"
48
- #argv :disk
49
- #command :'backup' => Rudy::CLI::Backups
50
- #command_alias :backup, :bu
51
-
52
- about "Manage Machines"
38
+
39
+ about "View Machines"
53
40
  option :l, :all, "Display all machines"
54
41
  action :W, :wash, "Wash machine metadata."
55
42
  command :machines => Rudy::CLI::Machines
56
43
  command_alias :machines, :m
57
44
 
58
- about "Manage Disks"
45
+ about "View Disks"
59
46
  action :W, :wash, "Wash disk metadata."
47
+ option :b, :backups, "Display backups"
48
+ option :l, :all, "Display all disks"
60
49
  command :disks => Rudy::CLI::Disks
61
50
  command_alias :disks, :d
62
51
 
@@ -80,20 +69,18 @@ class RudyCLI < Rudy::CLI::Base
80
69
  about "Startup a machine group"
81
70
  usage "rudy startup"
82
71
  command :startup => Rudy::CLI::Routines
83
- command_alias :startup, :s
84
72
 
85
73
  about "Shutdown a machine group"
86
74
  usage "rudy shutdown"
87
75
  command :shutdown => Rudy::CLI::Routines
88
76
 
89
- #about "Restart a machine group"
90
- #usage "rudy restart"
91
- #command :restart => Rudy::CLI::Routines
77
+ about "Reboot a machine group"
78
+ usage "rudy reboot"
79
+ command :reboot => Rudy::CLI::Routines
92
80
 
93
81
  about "Create a release"
94
82
  usage "rudy release"
95
83
  command :release => Rudy::CLI::Routines
96
- command_alias :release, :r
97
84
  command_alias :release, :rerelease
98
85
 
99
86
  #about "Update the release currently running in a machine group"
@@ -122,10 +109,14 @@ class RudyCLI < Rudy::CLI::Base
122
109
  argv :name
123
110
  command :config => Rudy::CLI::Config
124
111
 
112
+ command :print_global => Rudy::CLI::Config
113
+ command_alias :print_global, :global
125
114
 
126
115
  about "Initialize Rudy configuration"
127
116
  command :init do |obj|
128
-
117
+
118
+ Rudy::Huxtable.update_config
119
+
129
120
  unless File.exists?(Rudy::CONFIG_FILE)
130
121
  Rudy::Config.init_config_dir
131
122
  end
@@ -209,6 +200,10 @@ class RudyCLI < Rudy::CLI::Base
209
200
  end
210
201
  end
211
202
 
203
+
204
+ command :sysinfo do
205
+ puts Rudy.sysinfo.to_yaml
206
+ end
212
207
  end
213
208
 
214
209
  # We call Drydock specifically otherwise it will run at_exit. Rye also