rudy 0.8.2 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,13 @@
1
1
  RUDY, CHANGES
2
2
 
3
3
 
4
+ #### 0.8.3 (2009-06-03) ###############################
5
+
6
+ * CHANGE: Now requires rye-0.7.3 (disable_safe_mode method)
7
+ * CHANGE: Rye safe-mode is enabled after each routines script block to force disabling it
8
+ explicitly in every block it's needed.
9
+ * CHANGE: Removed grit dependency
10
+
4
11
 
5
12
  #### 0.8.2 (2009-06-01) ###############################
6
13
 
@@ -52,9 +52,9 @@ The routines configuration describes repeatable processes that you can execute o
52
52
  end
53
53
 
54
54
  after :rudy do # Run remote SSH commands
55
- mkdir :p, "great" # $ mkdir -p great
56
- touch "great/scott" # $ touch great/scott
57
- ls :l, :a # $ ls -l -a
55
+ mkdir :p, "great" # $ mkdir -p great
56
+ touch "great/scott" # $ touch great/scott
57
+ ls :l, :a # $ ls -l -a
58
58
  end
59
59
  end
60
60
 
@@ -38,7 +38,7 @@ module Rudy
38
38
  unless defined?(MAJOR)
39
39
  MAJOR = 0.freeze
40
40
  MINOR = 8.freeze
41
- TINY = 2.freeze
41
+ TINY = 3.freeze
42
42
  end
43
43
  def self.to_s; [MAJOR, MINOR, TINY].join('.'); end
44
44
  def self.to_f; self.to_s.to_f; end
@@ -80,13 +80,13 @@ module Rudy
80
80
  }
81
81
 
82
82
 
83
- lbox = Rye::Box.new('localhost', :info => false)
83
+ lbox = Rye::Box.new('localhost', :info => (@@global.verbose > 3), :debug => false)
84
84
  sconf = fetch_script_config
85
85
 
86
86
  enjoy_every_sandwich {
87
87
  if Rudy::Routines::ScriptHelper.before_local?(routine) # before_local
88
88
  # Runs "before_local" scripts of routines config.
89
- puts task_separator("LOCAL SHELL")
89
+ task_separator("LOCAL SHELL")
90
90
  lbox.cd Dir.pwd # Run local command block from current working directory
91
91
  Rudy::Routines::ScriptHelper.before_local(routine, sconf, lbox, @option, @argv)
92
92
  end
@@ -96,7 +96,7 @@ module Rudy
96
96
  if Rudy::Routines::ScriptHelper.script_local?(routine) # script_local
97
97
  # Runs "script_local" scripts of routines config.
98
98
  # NOTE: This is synonymous with before_local
99
- puts task_separator("LOCAL SHELL")
99
+ task_separator("LOCAL SHELL")
100
100
  lbox.cd Dir.pwd # Run local command block from current working directory
101
101
  Rudy::Routines::ScriptHelper.script_local(routine, sconf, lbox, @option, @argv)
102
102
  end
@@ -186,28 +186,28 @@ module Rudy
186
186
 
187
187
  enjoy_every_sandwich {
188
188
  if Rudy::Routines::UserHelper.adduser?(routine) # adduser
189
- puts task_separator("ADD USER")
189
+ task_separator("ADD USER")
190
190
  Rudy::Routines::UserHelper.adduser(routine, machine, rbox)
191
191
  end
192
192
  }
193
193
 
194
194
  enjoy_every_sandwich {
195
195
  if Rudy::Routines::UserHelper.authorize?(routine) # authorize
196
- puts task_separator("AUTHORIZE USER")
196
+ task_separator("AUTHORIZE USER")
197
197
  Rudy::Routines::UserHelper.authorize(routine, machine, rbox)
198
198
  end
199
199
  }
200
200
 
201
201
  enjoy_every_sandwich {
202
202
  if Rudy::Routines::ScriptHelper.before?(routine) # before
203
- puts task_separator("REMOTE SHELL")
203
+ task_separator("REMOTE SHELL")
204
204
  Rudy::Routines::ScriptHelper.before(routine, sconf, machine, rbox, @option, @argv)
205
205
  end
206
206
  }
207
207
 
208
208
  enjoy_every_sandwich {
209
209
  if Rudy::Routines::DiskHelper.disks?(routine) # disk
210
- puts task_separator("DISKS")
210
+ task_separator("DISKS")
211
211
  if rbox.ostype == "sunos"
212
212
  puts "Sorry, Solaris disks are not supported yet!"
213
213
  else
@@ -234,7 +234,7 @@ module Rudy
234
234
  # both be executed.
235
235
  enjoy_every_sandwich {
236
236
  if Rudy::Routines::ScriptHelper.script?(routine) # script
237
- puts task_separator("REMOTE SHELL")
237
+ task_separator("REMOTE SHELL")
238
238
  # Runs "after" scripts of routines config
239
239
  Rudy::Routines::ScriptHelper.script(routine, sconf, machine, rbox, @option, @argv)
240
240
  end
@@ -242,7 +242,7 @@ module Rudy
242
242
 
243
243
  enjoy_every_sandwich {
244
244
  if Rudy::Routines::ScriptHelper.after?(routine) # after
245
- puts task_separator("REMOTE SHELL")
245
+ task_separator("REMOTE SHELL")
246
246
  # Runs "after" scripts of routines config
247
247
  Rudy::Routines::ScriptHelper.after(routine, sconf, machine, rbox, @option, @argv)
248
248
  end
@@ -254,7 +254,7 @@ module Rudy
254
254
 
255
255
  enjoy_every_sandwich {
256
256
  if Rudy::Routines::ScriptHelper.after_local?(routine) # after_local
257
- puts task_separator("LOCAL SHELL")
257
+ task_separator("LOCAL SHELL")
258
258
  lbox.cd Dir.pwd # Run local command block from current working directory
259
259
  # Runs "after_local" scripts of routines config
260
260
  Rudy::Routines::ScriptHelper.after_local(routine, sconf, lbox, @option, @argv)
@@ -273,7 +273,7 @@ module Rudy
273
273
  return unless depends
274
274
  unless depends.empty?
275
275
  depends.each_with_index do |d, index|
276
- puts task_separator("DEPENDENCY: #{d}")
276
+ task_separator("DEPENDENCY: #{d}")
277
277
  routine_dependency = fetch_routine_config(d)
278
278
  unless routine_dependency
279
279
  STDERR.puts " Unknown routine: #{d}".color(:red)
@@ -316,7 +316,7 @@ module Rudy
316
316
  def task_separator(title)
317
317
  dashes = 59 - title.size
318
318
  dashes = 0 if dashes < 1
319
- ("%s--- %s %s" % [$/, title, '-'*dashes])
319
+ puts ("%s--- %s %s" % [$/, title, '-'*dashes]) if @@global.verbose > 2
320
320
  end
321
321
 
322
322
  def machine_separator(name, awsid)
@@ -337,7 +337,14 @@ module Rudy
337
337
  rescue => ex
338
338
  STDERR.puts " Error: #{ex.message}".color(:red)
339
339
  STDERR.puts ex.backtrace if Rudy.debug?
340
- exit 12 unless keep_going?
340
+ choice = Annoy.get_user_input('(S)kip (R)etry (A)bort: ')
341
+ if choice.match(/\AS/i)
342
+ return
343
+ elsif choice.match(/\AR/i)
344
+ retry
345
+ else
346
+ exit 12
347
+ end
341
348
  rescue Interrupt
342
349
  puts "Aborting..."
343
350
  exit 12
@@ -345,10 +352,6 @@ module Rudy
345
352
  ret
346
353
  end
347
354
 
348
- def keep_going?
349
- Annoy.pose_question(" Keep going?\a ", /yes|y|ya|sure|you bet!/i, STDOUT)
350
- end
351
-
352
355
  end
353
356
  end
354
357
  end
@@ -13,14 +13,35 @@ module Rudy
13
13
  print_response(ret)
14
14
  rescue IOError => ex
15
15
  STDERR.puts " Connection Error (#{ex.message})".color(:red)
16
- exit 12 unless keep_going?
16
+ choice = Annoy.get_user_input('(S)kip (R)etry (A)bort: ')
17
+ if choice.match(/\AS/i)
18
+ return
19
+ elsif choice.match(/\AR/i)
20
+ retry
21
+ else
22
+ exit 12
23
+ end
17
24
  rescue Rye::CommandError => ex
18
25
  print_response(ex)
19
- exit 12 unless keep_going?
26
+ choice = Annoy.get_user_input('(S)kip (R)etry (A)bort: ')
27
+ if choice.match(/\AS/i)
28
+ return
29
+ elsif choice.match(/\AR/i)
30
+ retry
31
+ else
32
+ exit 12
33
+ end
20
34
  rescue Rye::CommandNotFound => ex
21
35
  STDERR.puts " CommandNotFound: #{ex.message}".color(:red)
22
36
  STDERR.puts ex.backtrace if Rudy.debug?
23
- exit 12 unless keep_going?
37
+ choice = Annoy.get_user_input('(S)kip (R)etry (A)bort: ')
38
+ if choice.match(/\AS/i)
39
+ return
40
+ elsif choice.match(/\AR/i)
41
+ retry
42
+ else
43
+ exit 12
44
+ end
24
45
  end
25
46
 
26
47
  ret
@@ -35,7 +56,7 @@ module Rudy
35
56
  cmd ||= ""
36
57
  cmd, user = cmd.to_s, user.to_s
37
58
  prompt = user == "root" ? "#" : "$"
38
- ("%s%s@%s%s %s" % [$/, user, host, prompt, cmd.bright])
59
+ ("%s@%s%s %s" % [user, host, prompt, cmd.bright])
39
60
  end
40
61
 
41
62
  private
@@ -76,7 +76,12 @@ module Rudy; module Routines;
76
76
  return false unless hasconf
77
77
  unless routine[timing].kind_of?(Hash)
78
78
  STDERR.puts "No user supplied for #{timing} block".color(:red)
79
- exit 12 unless keep_going?
79
+ choice = Annoy.get_user_input('(S)kip (A)bort: ')
80
+ if choice.match(/\AS/i)
81
+ return
82
+ else
83
+ exit 12
84
+ end
80
85
  return false
81
86
  end
82
87
  routine[timing].each_pair do |user,proc|
@@ -101,7 +106,7 @@ module Rudy; module Routines;
101
106
 
102
107
  # The config file that gets created on each remote machine
103
108
  # will be created in the user's home directory.
104
- script_config_remote_path = File.join(rbox.getenv['HOME'], @@script_config_file_name)
109
+ script_config_remote_path = File.join(rbox.getenv['HOME'] || '', @@script_config_file_name)
105
110
 
106
111
  if sconf && !sconf.empty?
107
112
  tf = Tempfile.new(@@script_config_file_name)
@@ -169,16 +174,31 @@ module Rudy; module Routines;
169
174
  ### EXECUTE THE COMMANDS BLOCK
170
175
  rbox.batch(option, argv, &proc)
171
176
 
172
- rbox.pre_command_hook = nil
173
- rbox.post_command_hook = nil
174
-
175
177
  rescue Rye::CommandError => ex
176
178
  print_response(ex)
177
- exit 12 unless keep_going?
179
+ choice = Annoy.get_user_input('(S)kip (R)etry (A)bort: ')
180
+ if choice.match(/\AS/i)
181
+ return
182
+ elsif choice.match(/\AR/i)
183
+ retry
184
+ else
185
+ exit 12
186
+ end
178
187
  rescue Rye::CommandNotFound => ex
179
188
  STDERR.puts " CommandNotFound: #{ex.message}".color(:red)
180
189
  STDERR.puts ex.backtrace if Rudy.debug?
181
- exit 12 unless keep_going?
190
+ choice = Annoy.get_user_input('(S)kip (R)etry (A)bort: ')
191
+ if choice.match(/\AS/i)
192
+ return
193
+ elsif choice.match(/\AR/i)
194
+ retry
195
+ else
196
+ exit 12
197
+ end
198
+ ensure
199
+ rbox.pre_command_hook = nil
200
+ rbox.post_command_hook = nil
201
+ rbox.enable_safe_mode # In case it was disabled
182
202
  end
183
203
 
184
204
  rbox.cd # reset to home dir
@@ -48,7 +48,7 @@ module Rudy; module Routines;
48
48
 
49
49
 
50
50
  if Rudy::Routines::DiskHelper.disks?(@routine) # disk
51
- puts task_separator("DISKS")
51
+ task_separator("DISKS")
52
52
  if rbox.ostype == "sunos"
53
53
  puts "Sorry, Solaris is not supported yet!"
54
54
  else
@@ -1,7 +1,7 @@
1
1
  @spec = Gem::Specification.new do |s|
2
2
  s.name = "rudy"
3
3
  s.rubyforge_project = 'rudy'
4
- s.version = "0.8.2"
4
+ s.version = "0.8.3"
5
5
  s.summary = "Rudy: Not your grandparents' EC2 deployment tool."
6
6
  s.description = s.summary
7
7
  s.author = "Delano Mandelbaum"
@@ -16,12 +16,11 @@
16
16
 
17
17
  s.add_dependency 'drydock', '>= 0.6.3'
18
18
  s.add_dependency 'caesars', '>= 0.6.8'
19
- s.add_dependency 'rye', '>= 0.7.2'
19
+ s.add_dependency 'rye', '>= 0.7.3'
20
20
  s.add_dependency 'sysinfo', '>= 0.5.1'
21
21
  s.add_dependency 'storable', '>= 0.5.2'
22
- s.add_dependency 'annoy', '>= 0.5.0'
22
+ s.add_dependency 'annoy', '>= 0.5.1'
23
23
 
24
- s.add_dependency 'grit'
25
24
  s.add_dependency 'echoe'
26
25
  s.add_dependency 'amazon-ec2', '>= 0.3.8' # Region fix
27
26
  s.add_dependency 'aws-s3', '>= 0.6.1' # Ruby 1.9.1 compatability
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rudy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delano Mandelbaum
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-01 00:00:00 -04:00
12
+ date: 2009-06-03 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -40,7 +40,7 @@ dependencies:
40
40
  requirements:
41
41
  - - ">="
42
42
  - !ruby/object:Gem::Version
43
- version: 0.7.2
43
+ version: 0.7.3
44
44
  version:
45
45
  - !ruby/object:Gem::Dependency
46
46
  name: sysinfo
@@ -70,17 +70,7 @@ dependencies:
70
70
  requirements:
71
71
  - - ">="
72
72
  - !ruby/object:Gem::Version
73
- version: 0.5.0
74
- version:
75
- - !ruby/object:Gem::Dependency
76
- name: grit
77
- type: :runtime
78
- version_requirement:
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- version: "0"
73
+ version: 0.5.1
84
74
  version:
85
75
  - !ruby/object:Gem::Dependency
86
76
  name: echoe