rudy 0.6.8 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/CHANGES.txt +15 -2
  2. data/README.rdoc +30 -23
  3. data/Rakefile +5 -5
  4. data/Rudyfile +87 -66
  5. data/bin/rudy +120 -167
  6. data/bin/rudy-ec2 +17 -13
  7. data/bin/rudy-s3 +6 -4
  8. data/bin/rudy-sdb +5 -4
  9. data/lib/annoy.rb +1 -1
  10. data/lib/console.rb +1 -3
  11. data/lib/rudy.rb +11 -25
  12. data/lib/rudy/aws/ec2/instance.rb +1 -1
  13. data/lib/rudy/aws/ec2/volume.rb +2 -2
  14. data/lib/rudy/aws/sdb/error.rb +2 -1
  15. data/lib/rudy/cli.rb +10 -1
  16. data/lib/rudy/cli/aws/ec2/addresses.rb +1 -1
  17. data/lib/rudy/cli/aws/ec2/images.rb +3 -1
  18. data/lib/rudy/cli/aws/ec2/instances.rb +2 -2
  19. data/lib/rudy/cli/candy.rb +11 -0
  20. data/lib/rudy/cli/config.rb +25 -44
  21. data/lib/rudy/cli/machines.rb +30 -10
  22. data/lib/rudy/cli/routines.rb +67 -19
  23. data/lib/rudy/config.rb +30 -13
  24. data/lib/rudy/config/objects.rb +135 -10
  25. data/lib/rudy/disks.rb +8 -52
  26. data/lib/rudy/global.rb +9 -5
  27. data/lib/rudy/guidelines.rb +18 -0
  28. data/lib/rudy/huxtable.rb +29 -19
  29. data/lib/rudy/machines.rb +10 -7
  30. data/lib/rudy/mixins/hash.rb +25 -0
  31. data/lib/rudy/routines.rb +160 -10
  32. data/lib/rudy/routines/helper.rb +50 -0
  33. data/lib/rudy/routines/helpers/diskhelper.rb +44 -18
  34. data/lib/rudy/routines/helpers/scmhelper.rb +39 -0
  35. data/lib/rudy/routines/helpers/scripthelper.rb +86 -35
  36. data/lib/rudy/routines/helpers/userhelper.rb +37 -0
  37. data/lib/rudy/routines/passthrough.rb +36 -0
  38. data/lib/rudy/routines/release.rb +38 -22
  39. data/lib/rudy/routines/shutdown.rb +20 -49
  40. data/lib/rudy/routines/startup.rb +20 -47
  41. data/lib/rudy/scm.rb +75 -0
  42. data/lib/rudy/scm/git.rb +215 -0
  43. data/lib/rudy/scm/svn.rb +7 -6
  44. data/lib/rudy/utils.rb +12 -30
  45. data/lib/storable.rb +4 -1
  46. data/lib/sysinfo.rb +10 -0
  47. data/rudy.gemspec +21 -9
  48. data/test/01_mixins/10_hash_test.rb +25 -0
  49. data/test/{05_config → 10_config}/00_setup_test.rb +1 -1
  50. data/test/{05_config → 10_config}/30_machines_test.rb +1 -1
  51. data/test/15_scm/00_setup_test.rb +20 -0
  52. data/test/15_scm/20_git_test.rb +61 -0
  53. data/test/helper.rb +1 -1
  54. data/vendor/highline-1.5.1/Rakefile +3 -3
  55. metadata +41 -12
  56. data/bin/ird +0 -175
data/lib/rudy/scm/svn.rb CHANGED
@@ -12,7 +12,7 @@ module Rudy
12
12
 
13
13
  def create_release(username=nil, msg=nil)
14
14
  local_uri, local_revision = local_info
15
- rtag = generate_release_tag_name(username)
15
+ rtag = find_next_rtag(username)
16
16
  release_uri = "#{@base_uri}/#{rtag}"
17
17
  msg ||= 'Another Release by Rudy!'
18
18
  msg.tr!("'", "\\'")
@@ -24,12 +24,12 @@ module Rudy
24
24
  end
25
25
 
26
26
  def switch_working_copy(tag)
27
- raise "Invalid release tag (#{tag})." unless valid_uri?(tag)
27
+ raise "Invalid release tag (#{tag})." unless valid_rtag?(tag)
28
28
  `svn switch #{tag}`
29
29
  end
30
30
 
31
31
  # rel-2009-03-05-user-rev
32
- def generate_release_tag_name(username=nil)
32
+ def find_next_rtag(username=nil)
33
33
  now = Time.now
34
34
  mon = now.mon.to_s.rjust(2, '0')
35
35
  day = now.day.to_s.rjust(2, '0')
@@ -38,7 +38,7 @@ module Rudy
38
38
  criteria.insert(-2, username) if username
39
39
  tag = criteria.join(Rudy::DELIM)
40
40
  # Keep incrementing the revision number until we find the next one.
41
- tag.succ! while (valid_uri?("#{@base_uri}/#{tag}"))
41
+ tag.succ! while (valid_rtag?("#{@base_uri}/#{tag}"))
42
42
  tag
43
43
  end
44
44
 
@@ -55,12 +55,13 @@ module Rudy
55
55
  (File.exists?(File.join(path, '.svn')))
56
56
  end
57
57
 
58
- def valid_uri?(uri)
58
+ def valid_rtag?(uri)
59
59
  ret = `svn info #{uri} 2>&1` || '' # Valid SVN URIs will return some info
60
60
  (ret =~ /Repository UUID/) ? true : false
61
61
  end
62
62
 
63
- def everything_checked_in?
63
+ # Are all local changes committed?
64
+ def clean_working_copy?
64
65
  `svn diff . 2>&1` == '' # svn diff should return nothing
65
66
  end
66
67
  end
data/lib/rudy/utils.rb CHANGED
@@ -70,7 +70,7 @@ module Rudy
70
70
  # * +duration+ seconds to wait between tries (default: 2).
71
71
  # * +max+ maximum time to wait (default: 120). Throws an exception when exceeded.
72
72
  # * +logger+ IO object to print +dot+ to.
73
- # * +msg+ the message to print on success
73
+ # * +msg+ the message to print before executing the block.
74
74
  # * +bells+ number of terminal bells to ring. Set to nil or false to keep the waiter silent
75
75
  #
76
76
  # The +check+ block must return false while waiting. Once it returns true
@@ -82,6 +82,10 @@ module Rudy
82
82
  max = duration*2 if max < duration
83
83
  dot = '.'
84
84
  begin
85
+ if msg && logger
86
+ logger.print msg
87
+ logger.flush
88
+ end
85
89
  Timeout::timeout(max) do
86
90
  while !check.call
87
91
  sleep duration
@@ -93,7 +97,12 @@ module Rudy
93
97
  retry if Annoy.pose_question(" Keep waiting?\a ", /yes|y|ya|sure|you bet!/i, logger)
94
98
  return false
95
99
  end
96
- logger.puts msg if msg
100
+
101
+ if msg && logger
102
+ logger.puts " done"
103
+ logger.flush
104
+ end
105
+
97
106
  Rudy::Utils.bell(bells, logger)
98
107
  true
99
108
  end
@@ -274,35 +283,8 @@ module Rudy
274
283
 
275
284
  ######### Everything below here is TO BE REMOVED.
276
285
 
277
- #
278
- #
279
- # Run a shell command (TO BE REMOVED)
280
- def sh(command, chdir=false, verbose=false)
281
- prevdir = Dir.pwd
282
- Dir.chdir chdir if chdir
283
- puts command if verbose
284
- system(command)
285
- Dir.chdir prevdir if chdir
286
- end
287
-
288
- #
289
- # Run an SSH command (TO BE REMOVED)
290
- def ssh_command(host, keypair, user, command=false, printonly=false, verbose=false)
291
- #puts "CONNECTING TO #{host}..."
292
- cmd = "ssh -i #{keypair} #{user}@#{host} "
293
- cmd += " '#{command}'" if command
294
- puts cmd if verbose
295
- return cmd if printonly
296
- # backticks returns STDOUT
297
- # exec replaces current process (it's just like running ssh)
298
- # -- UPDATE -- Some problem with exec. "Operation not supported"
299
- # using system (http://www.mail-archive.com/mongrel-users@rubyforge.org/msg02018.html)
300
- (command) ? `#{cmd}` : Kernel.system(cmd)
301
- end
302
-
303
-
304
286
  # (TO BE REMOVED)
305
- # TODO: This is old and insecure.
287
+ # TODO: This is old and nasty.
306
288
  def scp_command(host, keypair, user, paths, to_path, to_local=false, verbose=false, printonly=false)
307
289
 
308
290
  paths = [paths] unless paths.is_a?(Array)
data/lib/storable.rb CHANGED
@@ -16,7 +16,7 @@ class Storable
16
16
  unless defined?(SUPPORTED_FORMATS) # We can assume all are defined
17
17
  VERSION = 5
18
18
  NICE_TIME_FORMAT = "%Y-%m-%d@%H:%M:%S".freeze
19
- SUPPORTED_FORMATS = %w{tsv csv yaml json s string}.freeze
19
+ SUPPORTED_FORMATS = [:tsv, :csv, :yaml, :json, :s, :string].freeze
20
20
  end
21
21
 
22
22
  # This value will be used as a default unless provided on-the-fly.
@@ -25,6 +25,7 @@ class Storable
25
25
 
26
26
  # See SUPPORTED_FORMATS for available values
27
27
  def format=(v)
28
+ v &&= v.to_sym
28
29
  raise "Unsupported format: #{v}" unless SUPPORTED_FORMATS.member?(v)
29
30
  @format = v
30
31
  end
@@ -84,6 +85,7 @@ class Storable
84
85
 
85
86
  # Dump the object data to the given format.
86
87
  def dump(format=nil, with_titles=false)
88
+ format &&= format.to_sym
87
89
  format ||= 's' # as in, to_s
88
90
  raise "Format not defined (#{format})" unless SUPPORTED_FORMATS.member?(format)
89
91
  send("to_#{format}", with_titles)
@@ -106,6 +108,7 @@ class Storable
106
108
  def to_file(file_path=nil, with_titles=true)
107
109
  raise "Cannot store to nil path" if file_path.nil?
108
110
  format = File.extname(file_path).tr('.', '')
111
+ format &&= format.to_sym
109
112
  format ||= @format
110
113
  Storable.write_file(file_path, dump(format, with_titles))
111
114
  end
data/lib/sysinfo.rb CHANGED
@@ -265,6 +265,16 @@ class SystemInfo < Storable
265
265
  end
266
266
  end
267
267
 
268
+ def shell
269
+ if @os == :unix
270
+ (ENV['SHELL'] || 'bash').to_sym
271
+ elsif @os == :win32
272
+ :dos
273
+ else
274
+ raise "paths not implemented for: #{@os}"
275
+ end
276
+ end
277
+
268
278
  # Print friendly system information.
269
279
  def to_s
270
280
  sprintf("Hostname: %s#{$/}IP Address: %s#{$/}System: %s#{$/}Uptime: %.2f (hours)#{$/}Ruby: #{ruby.join('.')}",
data/rudy.gemspec CHANGED
@@ -1,8 +1,8 @@
1
1
  @spec = Gem::Specification.new do |s|
2
2
  s.name = "rudy"
3
3
  s.rubyforge_project = 'rudy'
4
- s.version = "0.6.8"
5
- s.summary = "Rudy: Not your grandparent's deployment tool."
4
+ s.version = "0.7.0"
5
+ s.summary = "Rudy: Not your grandparents' EC2 deployment tool."
6
6
  s.description = s.summary
7
7
  s.author = "Delano Mandelbaum"
8
8
  s.email = "delano@solutious.com"
@@ -14,11 +14,13 @@
14
14
  s.require_paths = %w[lib]
15
15
  s.rubygems_version = '1.1.1'
16
16
 
17
- s.add_dependency 'drydock', '>= 0.5.6'
18
- s.add_dependency 'caesars', '>= 0.5.4'
19
- s.add_dependency 'rye', '>= 0.5.4'
17
+ s.add_dependency 'drydock', '>= 0.6.0'
18
+ s.add_dependency 'caesars', '>= 0.6.1'
19
+ s.add_dependency 'rye', '>= 0.6.3'
20
20
 
21
+ s.add_dependency 'grit'
21
22
  s.add_dependency 'echoe'
23
+ s.add_dependency 'json'
22
24
  s.add_dependency 'amazon-ec2', '>= 0.3.8' # Region fix
23
25
  s.add_dependency 'aws-s3', '>= 0.6.1' # Ruby 1.9.1 compatability
24
26
  s.add_dependency 'net-ssh', '>= 2.0.9'
@@ -32,7 +34,7 @@
32
34
  #s.add_development_dependency('jgre-monkeyspecdoc', '>= 0.1.0')
33
35
  #s.add_development_dependency('thoughtbot-shoulda', '>= 0.1.0')
34
36
 
35
- s.executables = %w[ird rudy rudy-ec2 rudy-sdb rudy-s3]
37
+ s.executables = %w[rudy rudy-ec2 rudy-sdb rudy-s3]
36
38
 
37
39
  # = MANIFEST =
38
40
  # git ls-files
@@ -42,7 +44,6 @@
42
44
  README.rdoc
43
45
  Rakefile
44
46
  Rudyfile
45
- bin/ird
46
47
  bin/rudy
47
48
  bin/rudy-ec2
48
49
  bin/rudy-s3
@@ -87,15 +88,23 @@
87
88
  lib/rudy/config/objects.rb
88
89
  lib/rudy/disks.rb
89
90
  lib/rudy/global.rb
91
+ lib/rudy/guidelines.rb
90
92
  lib/rudy/huxtable.rb
91
93
  lib/rudy/machines.rb
92
94
  lib/rudy/metadata.rb
95
+ lib/rudy/mixins/hash.rb
93
96
  lib/rudy/routines.rb
97
+ lib/rudy/routines/helper.rb
94
98
  lib/rudy/routines/helpers/diskhelper.rb
99
+ lib/rudy/routines/helpers/scmhelper.rb
95
100
  lib/rudy/routines/helpers/scripthelper.rb
101
+ lib/rudy/routines/helpers/userhelper.rb
102
+ lib/rudy/routines/passthrough.rb
96
103
  lib/rudy/routines/release.rb
97
104
  lib/rudy/routines/shutdown.rb
98
105
  lib/rudy/routines/startup.rb
106
+ lib/rudy/scm.rb
107
+ lib/rudy/scm/git.rb
99
108
  lib/rudy/scm/svn.rb
100
109
  lib/rudy/utils.rb
101
110
  lib/storable.rb
@@ -106,8 +115,11 @@
106
115
  support/randomize-root-password
107
116
  support/rudy-ec2-startup
108
117
  support/update-ec2-ami-tools
109
- test/05_config/00_setup_test.rb
110
- test/05_config/30_machines_test.rb
118
+ test/01_mixins/10_hash_test.rb
119
+ test/10_config/00_setup_test.rb
120
+ test/10_config/30_machines_test.rb
121
+ test/15_scm/00_setup_test.rb
122
+ test/15_scm/20_git_test.rb
111
123
  test/20_sdb/00_setup_test.rb
112
124
  test/20_sdb/10_domains_test.rb
113
125
  test/25_ec2/00_setup_test.rb
@@ -0,0 +1,25 @@
1
+ require File.join(File.dirname(__FILE__), '..', 'helper')
2
+
3
+ module Rudy::Test
4
+
5
+ class Case_01_Mixins < Test::Unit::TestCase
6
+
7
+ def one_level; {:empty=>1}; end
8
+ def two_levels; {:l1 => {:empty=>1}}; end
9
+ def three_levels; { :l1 => { :l2 => {:empty=>1, :empty=>1} } }; end
10
+ def six_levels; {:l1 => {:l2 => {:l3 => {:l4 => {:l5 => {}, :empty=>1}, :empty=>1}}}}; end
11
+
12
+ context "#{name}_10 Hash" do
13
+
14
+ should "(10) should calculate deepest point" do
15
+ assert_equal one_level.deepest_point, 1
16
+ assert_equal two_levels.deepest_point, 2
17
+ assert_equal three_levels.deepest_point, 3
18
+ assert_equal six_levels.deepest_point, 6
19
+ end
20
+
21
+ end
22
+
23
+ end
24
+
25
+ end
@@ -2,7 +2,7 @@ require File.join(File.dirname(__FILE__), '..', 'helper')
2
2
 
3
3
  module Rudy::Test
4
4
 
5
- class Case_05_Config < Test::Unit::TestCase
5
+ class Case_10_Config < Test::Unit::TestCase
6
6
  include Rudy::Huxtable
7
7
 
8
8
  @@logger = STDERR #StringIO.new
@@ -1,6 +1,6 @@
1
1
 
2
2
  module Rudy::Test
3
- class Case_05_Config
3
+ class Case_10_Config
4
4
 
5
5
  context "#{name}_30 Machines" do
6
6
 
@@ -0,0 +1,20 @@
1
+ require File.join(File.dirname(__FILE__), '..', 'helper')
2
+
3
+ module Rudy::Test
4
+
5
+ class Case_15_SCM < Test::Unit::TestCase
6
+ include Rudy::Huxtable
7
+
8
+ @@logger = STDERR #StringIO.new
9
+ @@zone = @@global.zone.to_s
10
+
11
+ context "#{name}_00 Setup" do
12
+ should "(00) have class variables setup" do
13
+ stop_test !@@global.is_a?(Rudy::Global), "We don't have global (#{@@global})"
14
+ stop_test !@@config.is_a?(Rudy::Config), "We don't have an instance of Rudy::Config (#{@@config})"
15
+ end
16
+ end
17
+
18
+
19
+ end
20
+ end
@@ -0,0 +1,61 @@
1
+
2
+ module Rudy::Test
3
+ class Case_15_SCM
4
+
5
+ def generate_rtag(username=nil)
6
+ now = Time.now
7
+ mon = now.mon.to_s.rjust(2, '0')
8
+ day = now.day.to_s.rjust(2, '0')
9
+ rev = "01"
10
+ criteria = ['rel', now.year, mon, day, rev]
11
+ criteria.insert(-2, username) if username
12
+ criteria.join(Rudy::DELIM)
13
+ end
14
+
15
+ context "#{name}_20 Git" do
16
+ setup do
17
+ @strand = Rudy::Utils.strand
18
+ @scm = Rudy::SCM::GIT.new({
19
+ :path => "/tmp/git-#{@strand}"
20
+ })
21
+ stop_test !Rudy::SCM::GIT.working_copy?, "Not in working directory"
22
+ end
23
+
24
+
25
+ should "(10) know when a tag is invalid" do
26
+ bad_tag = generate_rtag(@strand)
27
+ assert !@scm.valid_rtag?(bad_tag), "Said bad tag was valid"
28
+ end
29
+
30
+ should "(20) generate release tag name" do
31
+ rtag_should = generate_rtag(@strand)
32
+ rtag = @scm.find_next_rtag(@strand)
33
+ assert_equal rtag_should, rtag, "Bad tag"
34
+ end
35
+
36
+ should "(30) create release" do
37
+ rtag_should = generate_rtag(@strand)
38
+ rtag = @scm.create_release(@strand)
39
+ assert_equal rtag_should, rtag, "Bad tag"
40
+ assert @scm.delete_rtag(rtag), "Could not delete tag"
41
+ end
42
+
43
+ should "(31) know when a tag is valid" do
44
+ rtag = @scm.create_release(@strand)
45
+ assert @scm.valid_rtag?(rtag), "Said bad tag was invalid"
46
+ assert @scm.delete_rtag(rtag), "Could not delete tag"
47
+ end
48
+
49
+ should "(40) get remote URI" do
50
+ rtag = @scm.get_remote_uri
51
+ assert !@scm.get_remote_uri.nil? && !@scm.get_remote_uri.empty?, "No remote URI"
52
+ end
53
+
54
+ xshould "(90) raises exception when deleting a nonexistent tag" do
55
+
56
+ end
57
+ end
58
+
59
+
60
+ end
61
+ end
data/test/helper.rb CHANGED
@@ -1,7 +1,7 @@
1
1
 
2
2
  libdir = File.join(File.dirname(__FILE__), '..', 'lib')
3
3
  $:.unshift libdir
4
- %w{amazon-ec2 drydock caesars rye}.each { |dir| $: << File.join(File.dirname(__FILE__), '..', '..', dir, 'lib') }
4
+ %w{amazon-ec2 drydock caesars rye}.each { |dir| $:.unshift File.join(File.dirname(__FILE__), '..', '..', dir, 'lib') }
5
5
 
6
6
  require 'rubygems'
7
7
  require 'test/unit'
@@ -26,7 +26,7 @@ Rake::RDocTask.new do |rdoc|
26
26
  rdoc.title = "HighLine Documentation"
27
27
  end
28
28
 
29
- desc "Upload current documentation to Rubyforge"
29
+ about "Upload current documentation to Rubyforge"
30
30
  task :upload_docs => [:rdoc] do
31
31
  sh "scp -r doc/html/* " +
32
32
  "bbazzarrakk@rubyforge.org:/var/www/gforge-projects/highline/doc/"
@@ -68,7 +68,7 @@ Rake::GemPackageTask.new(spec) do |pkg|
68
68
  pkg.need_tar = true
69
69
  end
70
70
 
71
- desc "Show library's code statistics"
71
+ about "Show library's code statistics"
72
72
  task :stats do
73
73
  require 'code_statistics'
74
74
  CodeStatistics.new( ["HighLine", "lib"],
@@ -76,7 +76,7 @@ task :stats do
76
76
  ["Units", "test"] ).to_s
77
77
  end
78
78
 
79
- desc "Add new files to Subversion"
79
+ about "Add new files to Subversion"
80
80
  task :add_to_svn do
81
81
  sh %Q{svn status | ruby -nae 'system "svn add \#{$F[1]}" if $F[0] == "?"' }
82
82
  end
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.6.8
4
+ version: 0.7.0
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-04-24 00:00:00 -04:00
12
+ date: 2009-05-02 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.5.6
23
+ version: 0.6.0
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: caesars
@@ -30,7 +30,7 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.5.4
33
+ version: 0.6.1
34
34
  version:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: rye
@@ -40,7 +40,17 @@ dependencies:
40
40
  requirements:
41
41
  - - ">="
42
42
  - !ruby/object:Gem::Version
43
- version: 0.5.4
43
+ version: 0.6.3
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: grit
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
44
54
  version:
45
55
  - !ruby/object:Gem::Dependency
46
56
  name: echoe
@@ -52,6 +62,16 @@ dependencies:
52
62
  - !ruby/object:Gem::Version
53
63
  version: "0"
54
64
  version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: json
67
+ type: :runtime
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: "0"
74
+ version:
55
75
  - !ruby/object:Gem::Dependency
56
76
  name: amazon-ec2
57
77
  type: :runtime
@@ -112,10 +132,9 @@ dependencies:
112
132
  - !ruby/object:Gem::Version
113
133
  version: "0"
114
134
  version:
115
- description: "Rudy: Not your grandparent's deployment tool."
135
+ description: "Rudy: Not your grandparents' EC2 deployment tool."
116
136
  email: delano@solutious.com
117
137
  executables:
118
- - ird
119
138
  - rudy
120
139
  - rudy-ec2
121
140
  - rudy-sdb
@@ -133,7 +152,6 @@ files:
133
152
  - README.rdoc
134
153
  - Rakefile
135
154
  - Rudyfile
136
- - bin/ird
137
155
  - bin/rudy
138
156
  - bin/rudy-ec2
139
157
  - bin/rudy-s3
@@ -178,15 +196,23 @@ files:
178
196
  - lib/rudy/config/objects.rb
179
197
  - lib/rudy/disks.rb
180
198
  - lib/rudy/global.rb
199
+ - lib/rudy/guidelines.rb
181
200
  - lib/rudy/huxtable.rb
182
201
  - lib/rudy/machines.rb
183
202
  - lib/rudy/metadata.rb
203
+ - lib/rudy/mixins/hash.rb
184
204
  - lib/rudy/routines.rb
205
+ - lib/rudy/routines/helper.rb
185
206
  - lib/rudy/routines/helpers/diskhelper.rb
207
+ - lib/rudy/routines/helpers/scmhelper.rb
186
208
  - lib/rudy/routines/helpers/scripthelper.rb
209
+ - lib/rudy/routines/helpers/userhelper.rb
210
+ - lib/rudy/routines/passthrough.rb
187
211
  - lib/rudy/routines/release.rb
188
212
  - lib/rudy/routines/shutdown.rb
189
213
  - lib/rudy/routines/startup.rb
214
+ - lib/rudy/scm.rb
215
+ - lib/rudy/scm/git.rb
190
216
  - lib/rudy/scm/svn.rb
191
217
  - lib/rudy/utils.rb
192
218
  - lib/storable.rb
@@ -197,8 +223,11 @@ files:
197
223
  - support/randomize-root-password
198
224
  - support/rudy-ec2-startup
199
225
  - support/update-ec2-ami-tools
200
- - test/05_config/00_setup_test.rb
201
- - test/05_config/30_machines_test.rb
226
+ - test/01_mixins/10_hash_test.rb
227
+ - test/10_config/00_setup_test.rb
228
+ - test/10_config/30_machines_test.rb
229
+ - test/15_scm/00_setup_test.rb
230
+ - test/15_scm/20_git_test.rb
202
231
  - test/20_sdb/00_setup_test.rb
203
232
  - test/20_sdb/10_domains_test.rb
204
233
  - test/25_ec2/00_setup_test.rb
@@ -253,7 +282,7 @@ post_install_message:
253
282
  rdoc_options:
254
283
  - --line-numbers
255
284
  - --title
256
- - "Rudy: Not your grandparent's deployment tool."
285
+ - "Rudy: Not your grandparents' EC2 deployment tool."
257
286
  - --main
258
287
  - README.rdoc
259
288
  require_paths:
@@ -276,6 +305,6 @@ rubyforge_project: rudy
276
305
  rubygems_version: 1.3.2
277
306
  signing_key:
278
307
  specification_version: 3
279
- summary: "Rudy: Not your grandparent's deployment tool."
308
+ summary: "Rudy: Not your grandparents' EC2 deployment tool."
280
309
  test_files: []
281
310