rubycut-babushka 0.10.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (171) hide show
  1. data/Gemfile +8 -0
  2. data/Gemfile.lock +31 -0
  3. data/README.markdown +246 -0
  4. data/Rakefile +26 -0
  5. data/bin/babushka +11 -0
  6. data/deps/babushka.rb +101 -0
  7. data/deps/dev.rb +12 -0
  8. data/deps/fhs.rb +31 -0
  9. data/deps/git.rb +29 -0
  10. data/deps/homebrew.rb +30 -0
  11. data/deps/os_x.rb +33 -0
  12. data/deps/packages.rb +22 -0
  13. data/deps/pkg_managers.rb +110 -0
  14. data/deps/ruby.rb +23 -0
  15. data/deps/rubygems.rb +24 -0
  16. data/deps/system.rb +10 -0
  17. data/deps/templates/app.rb +68 -0
  18. data/deps/templates/external.rb +12 -0
  19. data/deps/templates/installer.rb +31 -0
  20. data/deps/templates/managed.rb +105 -0
  21. data/deps/templates/ppa.rb +24 -0
  22. data/deps/templates/src.rb +42 -0
  23. data/deps/templates/tmbundle.rb +15 -0
  24. data/lib/babushka.rb +28 -0
  25. data/lib/babushka/accepts_block_for.rb +72 -0
  26. data/lib/babushka/accepts_list_for.rb +49 -0
  27. data/lib/babushka/accepts_value_for.rb +24 -0
  28. data/lib/babushka/base.rb +78 -0
  29. data/lib/babushka/bug_reporter.rb +55 -0
  30. data/lib/babushka/cmdline.rb +133 -0
  31. data/lib/babushka/cmdline/handler.rb +41 -0
  32. data/lib/babushka/cmdline/helpers.rb +127 -0
  33. data/lib/babushka/cmdline/parser.rb +69 -0
  34. data/lib/babushka/colorizer.rb +59 -0
  35. data/lib/babushka/core_patches/array.rb +171 -0
  36. data/lib/babushka/core_patches/blank.rb +22 -0
  37. data/lib/babushka/core_patches/bytes.rb +52 -0
  38. data/lib/babushka/core_patches/hash.rb +107 -0
  39. data/lib/babushka/core_patches/hashish.rb +14 -0
  40. data/lib/babushka/core_patches/integer.rb +25 -0
  41. data/lib/babushka/core_patches/io.rb +8 -0
  42. data/lib/babushka/core_patches/numeric.rb +16 -0
  43. data/lib/babushka/core_patches/object.rb +27 -0
  44. data/lib/babushka/core_patches/string.rb +116 -0
  45. data/lib/babushka/core_patches/symbol.rb +12 -0
  46. data/lib/babushka/core_patches/try.rb +15 -0
  47. data/lib/babushka/core_patches/uri.rb +24 -0
  48. data/lib/babushka/dep.rb +470 -0
  49. data/lib/babushka/dep_context.rb +18 -0
  50. data/lib/babushka/dep_definer.rb +115 -0
  51. data/lib/babushka/dep_pool.rb +49 -0
  52. data/lib/babushka/dep_runner.rb +85 -0
  53. data/lib/babushka/dsl.rb +26 -0
  54. data/lib/babushka/git_repo.rb +185 -0
  55. data/lib/babushka/helpers/git_helpers.rb +32 -0
  56. data/lib/babushka/helpers/log_helpers.rb +176 -0
  57. data/lib/babushka/helpers/path_helpers.rb +34 -0
  58. data/lib/babushka/helpers/run_helpers.rb +145 -0
  59. data/lib/babushka/helpers/shell_helpers.rb +229 -0
  60. data/lib/babushka/helpers/suggest_helpers.rb +16 -0
  61. data/lib/babushka/helpers/uri_helpers.rb +36 -0
  62. data/lib/babushka/ip.rb +160 -0
  63. data/lib/babushka/lambda_chooser.rb +40 -0
  64. data/lib/babushka/levenshtein.rb +125 -0
  65. data/lib/babushka/meta_dep.rb +65 -0
  66. data/lib/babushka/meta_dep_context.rb +15 -0
  67. data/lib/babushka/parameter.rb +143 -0
  68. data/lib/babushka/pkg_helper.rb +81 -0
  69. data/lib/babushka/pkg_helpers/apt_helper.rb +61 -0
  70. data/lib/babushka/pkg_helpers/base_helper.rb +19 -0
  71. data/lib/babushka/pkg_helpers/binpkgsrc_helper.rb +48 -0
  72. data/lib/babushka/pkg_helpers/binports_helper.rb +34 -0
  73. data/lib/babushka/pkg_helpers/brew_helper.rb +110 -0
  74. data/lib/babushka/pkg_helpers/gem_helper.rb +120 -0
  75. data/lib/babushka/pkg_helpers/macports_helper.rb +22 -0
  76. data/lib/babushka/pkg_helpers/npm_helper.rb +45 -0
  77. data/lib/babushka/pkg_helpers/pacman_helper.rb +27 -0
  78. data/lib/babushka/pkg_helpers/pip_helper.rb +45 -0
  79. data/lib/babushka/pkg_helpers/src_helper.rb +16 -0
  80. data/lib/babushka/pkg_helpers/yum_helper.rb +25 -0
  81. data/lib/babushka/popen.rb +40 -0
  82. data/lib/babushka/prompt.rb +176 -0
  83. data/lib/babushka/renderable.rb +67 -0
  84. data/lib/babushka/resource.rb +215 -0
  85. data/lib/babushka/run_reporter.rb +60 -0
  86. data/lib/babushka/shell.rb +108 -0
  87. data/lib/babushka/source.rb +216 -0
  88. data/lib/babushka/source_pool.rb +146 -0
  89. data/lib/babushka/system_definitions.rb +97 -0
  90. data/lib/babushka/system_profile.rb +210 -0
  91. data/lib/babushka/task.rb +142 -0
  92. data/lib/babushka/vars.rb +108 -0
  93. data/lib/babushka/version_of.rb +65 -0
  94. data/lib/babushka/version_str.rb +57 -0
  95. data/lib/babushka/xml_string.rb +28 -0
  96. data/lib/components.rb +82 -0
  97. data/lib/fancypath/fancypath.rb +200 -0
  98. data/lib/inkan/inkan.rb +76 -0
  99. data/spec/acceptance/acceptance.rb +43 -0
  100. data/spec/acceptance_helper.rb +113 -0
  101. data/spec/archives/Blah.app.zip +0 -0
  102. data/spec/archives/archive.tar +0 -0
  103. data/spec/archives/archive.tar.bz2 +0 -0
  104. data/spec/archives/archive.tar.gz +0 -0
  105. data/spec/archives/archive.tbz2 +0 -0
  106. data/spec/archives/archive.tgz +0 -0
  107. data/spec/archives/archive.zip +0 -0
  108. data/spec/archives/content.txt +5 -0
  109. data/spec/archives/invalid_archive +5 -0
  110. data/spec/archives/nested archive/content.txt +5 -0
  111. data/spec/archives/nested_archive.tar +0 -0
  112. data/spec/archives/really_a_gzip.zip +0 -0
  113. data/spec/archives/test-0.3.1.tgz +0 -0
  114. data/spec/archives/tgz_archive +0 -0
  115. data/spec/archives/zip_without_extension +0 -0
  116. data/spec/babushka/accepts_for_spec.rb +174 -0
  117. data/spec/babushka/accepts_for_support.rb +72 -0
  118. data/spec/babushka/cmdline/console_spec.rb +11 -0
  119. data/spec/babushka/cmdline/help_spec.rb +61 -0
  120. data/spec/babushka/cmdline/version_spec.rb +10 -0
  121. data/spec/babushka/core_patches_spec.rb +171 -0
  122. data/spec/babushka/dep_context_spec.rb +58 -0
  123. data/spec/babushka/dep_definer_spec.rb +152 -0
  124. data/spec/babushka/dep_definer_support.rb +36 -0
  125. data/spec/babushka/dep_spec.rb +567 -0
  126. data/spec/babushka/dep_support.rb +29 -0
  127. data/spec/babushka/deps_spec.rb +113 -0
  128. data/spec/babushka/gem_helper_spec.rb +90 -0
  129. data/spec/babushka/git_repo_spec.rb +396 -0
  130. data/spec/babushka/ip_spec.rb +131 -0
  131. data/spec/babushka/lambda_chooser_spec.rb +115 -0
  132. data/spec/babushka/meta_dep_definer_spec.rb +127 -0
  133. data/spec/babushka/meta_dep_wrapper_spec.rb +32 -0
  134. data/spec/babushka/parameter_spec.rb +135 -0
  135. data/spec/babushka/path_helpers_spec.rb +102 -0
  136. data/spec/babushka/prompt_spec.rb +188 -0
  137. data/spec/babushka/renderable_spec.rb +100 -0
  138. data/spec/babushka/resource_spec.rb +141 -0
  139. data/spec/babushka/run_helpers_spec.rb +26 -0
  140. data/spec/babushka/shell_helpers_spec.rb +244 -0
  141. data/spec/babushka/shell_spec.rb +19 -0
  142. data/spec/babushka/source_pool_spec.rb +320 -0
  143. data/spec/babushka/source_pool_support.rb +31 -0
  144. data/spec/babushka/source_spec.rb +382 -0
  145. data/spec/babushka/source_support.rb +17 -0
  146. data/spec/babushka/system_profile_spec.rb +61 -0
  147. data/spec/babushka/task_spec.rb +141 -0
  148. data/spec/babushka/uri_spec.rb +13 -0
  149. data/spec/babushka/vars_spec.rb +59 -0
  150. data/spec/babushka/version_of_spec.rb +110 -0
  151. data/spec/babushka/version_str_spec.rb +130 -0
  152. data/spec/babushka/version_str_support.rb +37 -0
  153. data/spec/babushka/xml_string_spec.rb +98 -0
  154. data/spec/deps/bad/broken.rb +7 -0
  155. data/spec/deps/bad/working.rb +3 -0
  156. data/spec/deps/good/meta.rb +14 -0
  157. data/spec/deps/good/test.rb +11 -0
  158. data/spec/deps/outer/deps.rb +19 -0
  159. data/spec/deps/outer/more deps.rb +11 -0
  160. data/spec/deps/params/params.rb +10 -0
  161. data/spec/fancypath/fancypath_spec.rb +272 -0
  162. data/spec/fancypath_support.rb +10 -0
  163. data/spec/inkan/inkan_spec.rb +217 -0
  164. data/spec/renderable/different_example.conf.erb +4 -0
  165. data/spec/renderable/example.conf.erb +3 -0
  166. data/spec/renderable/example.sh +6 -0
  167. data/spec/renderable/with_binding.conf.erb +4 -0
  168. data/spec/renderable/xml_example.conf.erb +8 -0
  169. data/spec/repos/remote.git.tgz +0 -0
  170. data/spec/spec_helper.rb +87 -0
  171. metadata +238 -0
@@ -0,0 +1,10 @@
1
+ $TESTING=true
2
+ $:.push File.join(File.dirname(__FILE__), '..', 'lib/fancypath')
3
+
4
+ require 'fancypath'
5
+
6
+ TMP_DIR = __FILE__.to_fancypath.dirname/'..'/'tmp'/'fancypath'
7
+
8
+ def Fancypath path
9
+ Fancypath.new path
10
+ end
@@ -0,0 +1,217 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Inkan" do
4
+ describe '.legitimate?' do
5
+ context "without a hashbang" do
6
+ let(:content) { 'foo bar baz' }
7
+
8
+ it "returns true if the file contents match the SHA" do
9
+ open('/tmp/spec.txt', 'w') do |file|
10
+ file.puts "# Generated by Inkan: #{Digest::SHA1.hexdigest(content)}"
11
+ file.print content
12
+ end
13
+
14
+ Inkan.legitimate?('/tmp/spec.txt').should be_true
15
+ end
16
+
17
+ it "returns false if the file contents don't match the SHA" do
18
+ open('/tmp/spec.txt', 'w') do |file|
19
+ file.puts "# Generated by Inkan: #{Digest::SHA1.hexdigest(content)}"
20
+ file.puts content
21
+ end
22
+
23
+ Inkan.legitimate?('/tmp/spec.txt').should be_false
24
+ end
25
+
26
+ it "returns false if there is no SHA" do
27
+ open('/tmp/spec.txt', 'w') do |file|
28
+ file.print content
29
+ end
30
+
31
+ Inkan.legitimate?('/tmp/spec.txt').should be_false
32
+ end
33
+ end
34
+ context "with a hashbang" do
35
+ let(:content) { "#!/bin/sh\nfoo bar baz" }
36
+
37
+ it "returns true if the file contents match the SHA" do
38
+ open('/tmp/spec.txt', 'w') do |file|
39
+ file.puts '#!/bin/sh'
40
+ file.puts "# Generated by Inkan: #{Digest::SHA1.hexdigest(content)}"
41
+ file.print 'foo bar baz'
42
+ end
43
+
44
+ Inkan.legitimate?('/tmp/spec.txt').should be_true
45
+ end
46
+
47
+ it "returns false if the file contents don't match the SHA" do
48
+ open('/tmp/spec.txt', 'w') do |file|
49
+ file.puts '#!/bin/sh'
50
+ file.puts "# Generated by Inkan: #{Digest::SHA1.hexdigest(content)}"
51
+ file.puts 'foo bar baz'
52
+ end
53
+
54
+ Inkan.legitimate?('/tmp/spec.txt').should be_false
55
+ end
56
+
57
+ it "returns false if there is no SHA" do
58
+ open('/tmp/spec.txt', 'w') do |file|
59
+ file.print content
60
+ end
61
+
62
+ Inkan.legitimate?('/tmp/spec.txt').should be_false
63
+ end
64
+ end
65
+ end
66
+
67
+ describe '.seal' do
68
+ it "should write the file after closing the block" do
69
+ Inkan.seal('/tmp/spec.txt') do |inkan|
70
+ inkan.print 'foo bar baz'
71
+ end
72
+
73
+ contents = open('/tmp/spec.txt').read
74
+ contents.should match(/foo bar baz$/)
75
+ contents.should match(/^# Generated by Inkan/)
76
+ end
77
+ end
78
+
79
+ describe '.render' do
80
+ it "should return the result after closing the block" do
81
+ result = Inkan.render do |inkan|
82
+ inkan.print 'foo bar baz'
83
+ end
84
+
85
+ result.should match(/foo bar baz$/)
86
+ result.should match(/^# Generated by Inkan/)
87
+ end
88
+ end
89
+
90
+ describe '#seal' do
91
+ let(:inkan) { Inkan.new('/tmp/spec.txt') }
92
+
93
+ it "writes out the contents of the buffer" do
94
+ inkan.print "foo bar baz"
95
+ inkan.seal
96
+
97
+ open('/tmp/spec.txt').read.should match(/foo bar baz$/)
98
+ end
99
+
100
+ it "adds the credit line to the top of the file" do
101
+ inkan.print "foo bar baz"
102
+ inkan.seal
103
+
104
+ open('/tmp/spec.txt').read.should match(/^# Generated by Inkan/)
105
+ end
106
+
107
+ it "adds the SHA to the top of the file" do
108
+ inkan.print "foo bar baz"
109
+ inkan.seal
110
+
111
+ sha = Digest::SHA1.hexdigest("foo bar baz")
112
+
113
+ open('/tmp/spec.txt').read.should match(/#{sha}/)
114
+ end
115
+ end
116
+
117
+ describe '#render' do
118
+ let(:inkan) { Inkan.new(nil) }
119
+
120
+ before { shell "rm -f /tmp/spec.txt" }
121
+
122
+ it "writes out the contents of the buffer" do
123
+ inkan.print "foo bar baz"
124
+ inkan.render.should match(/foo bar baz$/)
125
+ end
126
+
127
+ context "when there is no hashbang" do
128
+ before { inkan.print "foo bar baz" }
129
+ it "adds the credit line to the top of the output" do
130
+ inkan.render.split("\n").first.should match(/^# Generated by Inkan/)
131
+ end
132
+ it "adds the SHA to the top of the output" do
133
+ sha = Digest::SHA1.hexdigest("foo bar baz")
134
+ inkan.render.split("\n").first.should match(/#{sha}/)
135
+ end
136
+ end
137
+
138
+ context "when there is a hashbang" do
139
+ before { inkan.print "#!/bin/sh\nfoo bar baz" }
140
+ it "leaves the hashbang at the top of the file" do
141
+ inkan.render.split("\n")[0].should == '#!/bin/sh'
142
+ end
143
+ it "adds the credit line to the top of the output below the hashbang" do
144
+ inkan.render.split("\n")[1].should match(/^# Generated by Inkan/)
145
+ end
146
+ it "adds the SHA to the top of the output below the hashbang" do
147
+ sha = Digest::SHA1.hexdigest("#!/bin/sh\nfoo bar baz")
148
+ inkan.render.split("\n")[1].should match(/#{sha}/)
149
+ end
150
+ end
151
+
152
+ it "doesn't write the file" do
153
+ inkan.print "foo bar baz"
154
+ inkan.render
155
+ File.exists?('/tmp/spec.txt').should be_false
156
+ end
157
+ end
158
+
159
+ describe '#puts' do
160
+ let(:inkan) { Inkan.new('/tmp/spec.txt') }
161
+
162
+ it "adds an extra new line to the output" do
163
+ inkan.puts "foo bar baz"
164
+ inkan.seal
165
+
166
+ open('/tmp/spec.txt').read.should match(/foo bar baz\n$/)
167
+ end
168
+ end
169
+
170
+ describe '#credit' do
171
+ let(:inkan) { Inkan.new('/tmp/spec.txt') }
172
+
173
+ it "defaults to 'Generated by Inkan'" do
174
+ inkan.credit.should == 'Generated by Inkan'
175
+ end
176
+
177
+ it "should pass through changes to the file comment" do
178
+ inkan.credit = "Pat's Magic Code"
179
+ inkan.print "foo bar baz"
180
+ inkan.seal
181
+
182
+ open('/tmp/spec.txt').read.should match(/^# Pat's Magic Code/)
183
+ end
184
+ end
185
+
186
+ describe '#comment' do
187
+ let(:inkan) { Inkan.new('/tmp/spec.txt') }
188
+
189
+ it "defaults to a hash symbol" do
190
+ inkan.comment.should == '#'
191
+ end
192
+
193
+ it "should pass through changes to the file credit" do
194
+ inkan.comment = "//"
195
+ inkan.print "foo bar baz"
196
+ inkan.seal
197
+
198
+ open('/tmp/spec.txt').read.should match(/^\/\/ Generated by Inkan/)
199
+ end
200
+ end
201
+
202
+ describe '#comment_suffix' do
203
+ let(:inkan) { Inkan.new('/tmp/spec.txt') }
204
+
205
+ it "defaults to a blank string" do
206
+ inkan.comment_suffix.should == ''
207
+ end
208
+
209
+ it "should pass through changes to the file comment" do
210
+ inkan.comment_suffix = "*/"
211
+ inkan.print "foo bar baz"
212
+ inkan.seal
213
+
214
+ open('/tmp/spec.txt').read.should match(/\*\/\n/)
215
+ end
216
+ end
217
+ end
@@ -0,0 +1,4 @@
1
+ server {
2
+ root <%= tmp_prefix %>;
3
+ passenger_enabled on;
4
+ }
@@ -0,0 +1,3 @@
1
+ server {
2
+ root <%= tmp_prefix %>;
3
+ }
@@ -0,0 +1,6 @@
1
+ #!/bin/bash
2
+
3
+ cd .. # up from .git/
4
+ unset GIT_DIR # otherwise `git` commands can't see other repos
5
+ [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # so we run against the right ruby
6
+ babushka 'benhoskings:up to date.repo' repo_path='.' git_ref_data="$(cat /dev/stdin)"
@@ -0,0 +1,4 @@
1
+ server {
2
+ root <%= custom_renderable_path %>;
3
+ passenger_enabled on;
4
+ }
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>Lol</key>
6
+ <true/>
7
+ </dict>
8
+ </plist>
Binary file
@@ -0,0 +1,87 @@
1
+ # coding: utf-8
2
+
3
+ $:.concat %w[spec/babushka spec/fancypath spec/inkan .]
4
+
5
+ require 'lib/babushka'
6
+ include Babushka
7
+ include Babushka::DSL
8
+
9
+ require 'rubygems'
10
+ require 'rspec'
11
+
12
+ # RSpec::Core::Example.send :include, Babushka::Helpers
13
+ RSpec::Core::ExampleGroup.send :include, Babushka::LogHelpers
14
+ RSpec::Core::ExampleGroup.send :include, Babushka::ShellHelpers
15
+ RSpec::Core::ExampleGroup.send :include, Babushka::PathHelpers
16
+
17
+ class Object
18
+ # Log and return unmodified in the same manner as #tapp, but escape the
19
+ # output to be HTML safe and easily readable. For example,
20
+ # #<Object:0x00000100bda208>
21
+ # becomes
22
+ # #&lt;Object:0x00000100bda208><br />
23
+ def taph
24
+ tap {
25
+ puts "<pre>" +
26
+ "#{File.basename caller[2]}: #{self.inspect}".gsub('&', '&amp;').gsub('<', '&lt;') +
27
+ "</pre>"
28
+ }
29
+ end
30
+ end
31
+
32
+ puts "babushka@#{`git rev-parse --short HEAD`.strip} | ruby-#{RUBY_VERSION} | rspec-#{RSpec::Version::STRING}"
33
+
34
+ def tmp_prefix
35
+ "#{'/private' if Base.host.osx?}/tmp/rspec/its_ok_if_a_test_deletes_this/babushka"
36
+ end
37
+
38
+ `rm -rf '#{tmp_prefix}'` if File.exists? tmp_prefix
39
+ `mkdir -p '#{tmp_prefix}'` unless File.exists? tmp_prefix
40
+
41
+ module Babushka
42
+ class Resource
43
+ def archive_prefix
44
+ tmp_prefix / 'archives'
45
+ end
46
+ end
47
+
48
+ class Source
49
+ def remove!
50
+ !cloneable? || !File.exists?(path) || `rm -rf '#{path}'`
51
+ end
52
+ private
53
+ def self.sources_yml
54
+ tmp_prefix / 'sources.yml'
55
+ end
56
+ def self.source_prefix
57
+ tmp_prefix / 'sources'
58
+ end
59
+ def self.for_remote name
60
+ Source.new(default_remote_for(name), :name => name).tap {|source|
61
+ source.stub!(:update!) # don't hit the network to update sources during specs.
62
+ }
63
+ end
64
+ end
65
+
66
+ class VersionOf
67
+ # VersionOf#== should return false in testing unless other is also a VersionOf.
68
+ def == other
69
+ if other.is_a? VersionOf
70
+ name == other.name &&
71
+ version == other.version
72
+ end
73
+ end
74
+ end
75
+
76
+ class Logging
77
+ def self.print_log message, printable
78
+ # Don't log while running specs.
79
+ end
80
+ end
81
+
82
+ class BugReporter
83
+ def self.report dep
84
+ # Don't report exceptions during tests.
85
+ end
86
+ end
87
+ end
metadata ADDED
@@ -0,0 +1,238 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rubycut-babushka
3
+ version: !ruby/object:Gem::Version
4
+ hash: 59
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 10
9
+ - 6
10
+ version: 0.10.6
11
+ platform: ruby
12
+ authors:
13
+ - Ben Hoskings
14
+ - Rubycut
15
+ autorequire:
16
+ bindir: bin
17
+ cert_chain: []
18
+
19
+ date: 2011-11-13 00:00:00 Z
20
+ dependencies: []
21
+
22
+ description: Babushka is a tool for finding, running, writing and sharing recipies to automate things.
23
+ email:
24
+ - ben@hoskings.net
25
+ - ruby.cutter@gmail.com
26
+ executables:
27
+ - babushka
28
+ extensions: []
29
+
30
+ extra_rdoc_files: []
31
+
32
+ files:
33
+ - lib/inkan/inkan.rb
34
+ - lib/components.rb
35
+ - lib/babushka.rb
36
+ - lib/babushka/cmdline.rb
37
+ - lib/babushka/renderable.rb
38
+ - lib/babushka/meta_dep_context.rb
39
+ - lib/babushka/colorizer.rb
40
+ - lib/babushka/lambda_chooser.rb
41
+ - lib/babushka/dep.rb
42
+ - lib/babushka/pkg_helper.rb
43
+ - lib/babushka/source_pool.rb
44
+ - lib/babushka/task.rb
45
+ - lib/babushka/run_reporter.rb
46
+ - lib/babushka/prompt.rb
47
+ - lib/babushka/bug_reporter.rb
48
+ - lib/babushka/parameter.rb
49
+ - lib/babushka/accepts_list_for.rb
50
+ - lib/babushka/pkg_helpers/base_helper.rb
51
+ - lib/babushka/pkg_helpers/gem_helper.rb
52
+ - lib/babushka/pkg_helpers/pacman_helper.rb
53
+ - lib/babushka/pkg_helpers/brew_helper.rb
54
+ - lib/babushka/pkg_helpers/apt_helper.rb
55
+ - lib/babushka/pkg_helpers/pip_helper.rb
56
+ - lib/babushka/pkg_helpers/yum_helper.rb
57
+ - lib/babushka/pkg_helpers/binports_helper.rb
58
+ - lib/babushka/pkg_helpers/macports_helper.rb
59
+ - lib/babushka/pkg_helpers/npm_helper.rb
60
+ - lib/babushka/pkg_helpers/src_helper.rb
61
+ - lib/babushka/pkg_helpers/binpkgsrc_helper.rb
62
+ - lib/babushka/dep_pool.rb
63
+ - lib/babushka/version_of.rb
64
+ - lib/babushka/source.rb
65
+ - lib/babushka/cmdline/handler.rb
66
+ - lib/babushka/cmdline/parser.rb
67
+ - lib/babushka/cmdline/helpers.rb
68
+ - lib/babushka/base.rb
69
+ - lib/babushka/helpers/run_helpers.rb
70
+ - lib/babushka/helpers/uri_helpers.rb
71
+ - lib/babushka/helpers/shell_helpers.rb
72
+ - lib/babushka/helpers/path_helpers.rb
73
+ - lib/babushka/helpers/suggest_helpers.rb
74
+ - lib/babushka/helpers/git_helpers.rb
75
+ - lib/babushka/helpers/log_helpers.rb
76
+ - lib/babushka/meta_dep.rb
77
+ - lib/babushka/vars.rb
78
+ - lib/babushka/levenshtein.rb
79
+ - lib/babushka/system_profile.rb
80
+ - lib/babushka/system_definitions.rb
81
+ - lib/babushka/popen.rb
82
+ - lib/babushka/dep_runner.rb
83
+ - lib/babushka/core_patches/bytes.rb
84
+ - lib/babushka/core_patches/hashish.rb
85
+ - lib/babushka/core_patches/string.rb
86
+ - lib/babushka/core_patches/integer.rb
87
+ - lib/babushka/core_patches/hash.rb
88
+ - lib/babushka/core_patches/object.rb
89
+ - lib/babushka/core_patches/symbol.rb
90
+ - lib/babushka/core_patches/blank.rb
91
+ - lib/babushka/core_patches/try.rb
92
+ - lib/babushka/core_patches/uri.rb
93
+ - lib/babushka/core_patches/io.rb
94
+ - lib/babushka/core_patches/numeric.rb
95
+ - lib/babushka/core_patches/array.rb
96
+ - lib/babushka/dsl.rb
97
+ - lib/babushka/resource.rb
98
+ - lib/babushka/shell.rb
99
+ - lib/babushka/version_str.rb
100
+ - lib/babushka/xml_string.rb
101
+ - lib/babushka/accepts_value_for.rb
102
+ - lib/babushka/git_repo.rb
103
+ - lib/babushka/accepts_block_for.rb
104
+ - lib/babushka/dep_definer.rb
105
+ - lib/babushka/ip.rb
106
+ - lib/babushka/dep_context.rb
107
+ - lib/fancypath/fancypath.rb
108
+ - deps/templates/ppa.rb
109
+ - deps/templates/managed.rb
110
+ - deps/templates/installer.rb
111
+ - deps/templates/external.rb
112
+ - deps/templates/src.rb
113
+ - deps/templates/app.rb
114
+ - deps/templates/tmbundle.rb
115
+ - deps/system.rb
116
+ - deps/fhs.rb
117
+ - deps/babushka.rb
118
+ - deps/git.rb
119
+ - deps/os_x.rb
120
+ - deps/rubygems.rb
121
+ - deps/dev.rb
122
+ - deps/pkg_managers.rb
123
+ - deps/ruby.rb
124
+ - deps/packages.rb
125
+ - deps/homebrew.rb
126
+ - README.markdown
127
+ - spec/repos/remote.git.tgz
128
+ - spec/inkan/inkan_spec.rb
129
+ - spec/spec_helper.rb
130
+ - spec/renderable/example.sh
131
+ - spec/renderable/with_binding.conf.erb
132
+ - spec/renderable/different_example.conf.erb
133
+ - spec/renderable/xml_example.conf.erb
134
+ - spec/renderable/example.conf.erb
135
+ - spec/acceptance/acceptance.rb
136
+ - spec/babushka/system_profile_spec.rb
137
+ - spec/babushka/uri_spec.rb
138
+ - spec/babushka/source_support.rb
139
+ - spec/babushka/meta_dep_wrapper_spec.rb
140
+ - spec/babushka/xml_string_spec.rb
141
+ - spec/babushka/accepts_for_spec.rb
142
+ - spec/babushka/accepts_for_support.rb
143
+ - spec/babushka/meta_dep_definer_spec.rb
144
+ - spec/babushka/deps_spec.rb
145
+ - spec/babushka/ip_spec.rb
146
+ - spec/babushka/shell_spec.rb
147
+ - spec/babushka/dep_context_spec.rb
148
+ - spec/babushka/shell_helpers_spec.rb
149
+ - spec/babushka/dep_support.rb
150
+ - spec/babushka/git_repo_spec.rb
151
+ - spec/babushka/dep_spec.rb
152
+ - spec/babushka/renderable_spec.rb
153
+ - spec/babushka/run_helpers_spec.rb
154
+ - spec/babushka/cmdline/help_spec.rb
155
+ - spec/babushka/cmdline/version_spec.rb
156
+ - spec/babushka/cmdline/console_spec.rb
157
+ - spec/babushka/gem_helper_spec.rb
158
+ - spec/babushka/prompt_spec.rb
159
+ - spec/babushka/version_of_spec.rb
160
+ - spec/babushka/resource_spec.rb
161
+ - spec/babushka/lambda_chooser_spec.rb
162
+ - spec/babushka/source_pool_support.rb
163
+ - spec/babushka/version_str_support.rb
164
+ - spec/babushka/dep_definer_support.rb
165
+ - spec/babushka/path_helpers_spec.rb
166
+ - spec/babushka/source_pool_spec.rb
167
+ - spec/babushka/task_spec.rb
168
+ - spec/babushka/parameter_spec.rb
169
+ - spec/babushka/dep_definer_spec.rb
170
+ - spec/babushka/vars_spec.rb
171
+ - spec/babushka/source_spec.rb
172
+ - spec/babushka/core_patches_spec.rb
173
+ - spec/babushka/version_str_spec.rb
174
+ - spec/deps/good/test.rb
175
+ - spec/deps/good/meta.rb
176
+ - spec/deps/outer/more deps.rb
177
+ - spec/deps/outer/deps.rb
178
+ - spec/deps/params/params.rb
179
+ - spec/deps/bad/working.rb
180
+ - spec/deps/bad/broken.rb
181
+ - spec/acceptance_helper.rb
182
+ - spec/fancypath_support.rb
183
+ - spec/fancypath/fancypath_spec.rb
184
+ - spec/archives/content.txt
185
+ - spec/archives/zip_without_extension
186
+ - spec/archives/tgz_archive
187
+ - spec/archives/archive.zip
188
+ - spec/archives/archive.tar.gz
189
+ - spec/archives/Blah.app.zip
190
+ - spec/archives/archive.tbz2
191
+ - spec/archives/nested archive/content.txt
192
+ - spec/archives/test-0.3.1.tgz
193
+ - spec/archives/archive.tar
194
+ - spec/archives/nested_archive.tar
195
+ - spec/archives/archive.tgz
196
+ - spec/archives/archive.tar.bz2
197
+ - spec/archives/really_a_gzip.zip
198
+ - spec/archives/invalid_archive
199
+ - Rakefile
200
+ - Gemfile
201
+ - Gemfile.lock
202
+ - bin/babushka
203
+ homepage: https://github.com/rubycut/babushka
204
+ licenses: []
205
+
206
+ post_install_message:
207
+ rdoc_options: []
208
+
209
+ require_paths:
210
+ - lib
211
+ required_ruby_version: !ruby/object:Gem::Requirement
212
+ none: false
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ hash: 3
217
+ segments:
218
+ - 0
219
+ version: "0"
220
+ required_rubygems_version: !ruby/object:Gem::Requirement
221
+ none: false
222
+ requirements:
223
+ - - ">="
224
+ - !ruby/object:Gem::Version
225
+ hash: 3
226
+ segments:
227
+ - 0
228
+ version: "0"
229
+ requirements: []
230
+
231
+ rubyforge_project:
232
+ rubygems_version: 1.8.11
233
+ signing_key:
234
+ specification_version: 3
235
+ summary: Test-driven sysadmin.
236
+ test_files: []
237
+
238
+ has_rdoc: