sous_chef 0.0.3 → 0.0.4
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.
- checksums.yaml +7 -0
- data/.gitignore +2 -3
- data/Gemfile +3 -15
- data/Rakefile +0 -67
- data/lib/sous_chef.rb +3 -3
- data/lib/sous_chef/recipe.rb +31 -32
- data/lib/sous_chef/resource.rb +7 -6
- data/lib/sous_chef/version.rb +3 -0
- data/sous_chef.gemspec +22 -0
- data/spec/fixtures/deploy_command.rb +3 -1
- data/spec/fixtures/deploy_command_expected.sh +0 -1
- data/spec/resource/gemfile_spec.rb +0 -5
- metadata +59 -35
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6d2a69b68915287d1c9a4a84b7d2cfcacee5c174
|
4
|
+
data.tar.gz: 6ab25a0de57cd5c06a01c21275c68d6f5694b968
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 53bd5b3994073d8f59ee8899332a7e6e2ead6e301b9422d7bb74da7e2a3dd118d54a61d125c1573755301019304e730be55a85e85073fe2c27d4bd9c40f9bb0d
|
7
|
+
data.tar.gz: 162bddea8880dc3f8270948727f9ba28bdcb2446761827b348255f78750bc76b2b44ec624aa7cc331db3d9ae1dc6c5ec055c990f021a6199aaa4b144a221e6ed
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
@@ -1,18 +1,6 @@
|
|
1
|
-
|
2
|
-
disable_system_gems
|
1
|
+
source 'https://rubygems.org'
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
only :development do
|
8
|
-
gem 'bundler'
|
9
|
-
gem 'jeweler'
|
10
|
-
gem 'rspec', :require_as => 'spec'
|
11
|
-
gem 'ZenTest'
|
3
|
+
group :development do
|
4
|
+
gem 'rspec', '~> 1.3'
|
12
5
|
gem 'rake'
|
13
|
-
gem 'rcov'
|
14
|
-
gem 'ruby-debug'
|
15
|
-
gem 'yard'
|
16
|
-
gem 'reek'
|
17
|
-
gem 'roodi'
|
18
6
|
end
|
data/Rakefile
CHANGED
@@ -1,76 +1,9 @@
|
|
1
|
-
require 'bundler'
|
2
|
-
Bundler.require_env
|
3
1
|
require 'rake'
|
4
2
|
|
5
|
-
begin
|
6
|
-
require 'jeweler'
|
7
|
-
Jeweler::Tasks.new do |gem|
|
8
|
-
gem.name = "sous_chef"
|
9
|
-
gem.summary = %Q{Chef's prep-cook}
|
10
|
-
gem.description = %Q{Create bash scripts using a simple chef-like syntax}
|
11
|
-
gem.email = ["memde@engineyard.com", "bdonovan@engineyard.com"]
|
12
|
-
gem.homepage = "http://github.com/engineyard/sous_chef"
|
13
|
-
gem.authors = ["Martin Emde", "Brian Donovan"]
|
14
|
-
|
15
|
-
bundle = Bundler::Bundle.load(File.dirname(__FILE__) + '/Gemfile')
|
16
|
-
bundle.environment.dependencies.each do |d|
|
17
|
-
if d.only && d.only.include?('runtime')
|
18
|
-
gem.add_dependency d.name, d.version.to_s
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
Jeweler::GemcutterTasks.new
|
23
|
-
rescue LoadError
|
24
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
25
|
-
end
|
26
|
-
|
27
3
|
require 'spec/rake/spectask'
|
28
4
|
Spec::Rake::SpecTask.new(:spec) do |spec|
|
29
5
|
spec.libs << 'lib' << 'spec'
|
30
6
|
spec.spec_files = FileList['spec/**/*_spec.rb']
|
31
7
|
end
|
32
8
|
|
33
|
-
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
34
|
-
spec.libs << 'lib' << 'spec'
|
35
|
-
spec.pattern = 'spec/**/*_spec.rb'
|
36
|
-
spec.rcov = true
|
37
|
-
spec.rcov_opts << '--exclude' << 'spec,vendor,Library'
|
38
|
-
end
|
39
|
-
|
40
|
-
task :spec => :check_dependencies
|
41
|
-
|
42
|
-
begin
|
43
|
-
require 'reek/adapters/rake_task'
|
44
|
-
Reek::RakeTask.new do |t|
|
45
|
-
t.fail_on_error = true
|
46
|
-
t.verbose = false
|
47
|
-
t.source_files = 'lib/**/*.rb'
|
48
|
-
end
|
49
|
-
rescue LoadError
|
50
|
-
task :reek do
|
51
|
-
abort "Reek is not available. In order to run reek, you must: sudo gem install reek"
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
begin
|
56
|
-
require 'roodi'
|
57
|
-
require 'roodi_task'
|
58
|
-
RoodiTask.new do |t|
|
59
|
-
t.verbose = false
|
60
|
-
end
|
61
|
-
rescue LoadError
|
62
|
-
task :roodi do
|
63
|
-
abort "Roodi is not available. In order to run roodi, you must: sudo gem install roodi"
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
9
|
task :default => :spec
|
68
|
-
|
69
|
-
begin
|
70
|
-
require 'yard'
|
71
|
-
YARD::Rake::YardocTask.new
|
72
|
-
rescue LoadError
|
73
|
-
task :yardoc do
|
74
|
-
abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
|
75
|
-
end
|
76
|
-
end
|
data/lib/sous_chef.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
module SousChef
|
2
|
-
autoload :Recipe, 'sous_chef/recipe'
|
3
|
-
autoload :Resource, 'sous_chef/resource'
|
4
|
-
|
5
2
|
def self.prep(*flags, &block)
|
6
3
|
recipe = Recipe.new(*flags, &block)
|
7
4
|
recipe.to_script
|
8
5
|
end
|
9
6
|
end
|
7
|
+
|
8
|
+
require 'sous_chef/recipe'
|
9
|
+
require 'sous_chef/resource'
|
data/lib/sous_chef/recipe.rb
CHANGED
@@ -75,44 +75,43 @@ module SousChef
|
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
resource.setup
|
83
|
-
end
|
84
|
-
resource
|
78
|
+
def add_resource(resource)
|
79
|
+
with_context(resource) do
|
80
|
+
@resources << resource
|
81
|
+
resource.setup
|
85
82
|
end
|
83
|
+
resource
|
84
|
+
end
|
86
85
|
|
87
|
-
|
88
|
-
|
89
|
-
|
86
|
+
def context
|
87
|
+
@context
|
88
|
+
end
|
90
89
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
90
|
+
def with_context(resource)
|
91
|
+
@context = resource
|
92
|
+
yield
|
93
|
+
@context = nil
|
94
|
+
end
|
96
95
|
|
97
|
-
|
98
|
-
|
99
|
-
|
96
|
+
def escape_path(path)
|
97
|
+
path
|
98
|
+
end
|
100
99
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
100
|
+
def escape_string(string)
|
101
|
+
# bash is completely insane
|
102
|
+
# this stops the quote, immediately starts another one using
|
103
|
+
# double quotes to insert the single quote, then resumes the
|
104
|
+
# single quote again until the terminating single quote
|
105
|
+
return if string.nil?
|
106
|
+
string.gsub("'", %q{'"'"'})
|
107
|
+
end
|
109
108
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
end
|
109
|
+
def method_missing(meth, *args, &block)
|
110
|
+
if context && context.resource_respond_to?(meth)
|
111
|
+
context.__send__(meth, *args, &block)
|
112
|
+
else
|
113
|
+
super
|
116
114
|
end
|
115
|
+
end
|
117
116
|
end
|
118
117
|
end
|
data/lib/sous_chef/resource.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
module SousChef
|
2
2
|
module Resource
|
3
|
-
autoload :Base, 'sous_chef/resource/base'
|
4
|
-
autoload :Directory, 'sous_chef/resource/directory'
|
5
|
-
autoload :Execute, 'sous_chef/resource/execute'
|
6
|
-
autoload :File, 'sous_chef/resource/file'
|
7
|
-
autoload :Gemfile, 'sous_chef/resource/gemfile'
|
8
|
-
autoload :Log, 'sous_chef/resource/log'
|
9
3
|
end
|
10
4
|
end
|
5
|
+
|
6
|
+
require 'sous_chef/resource/base'
|
7
|
+
require 'sous_chef/resource/directory'
|
8
|
+
require 'sous_chef/resource/execute'
|
9
|
+
require 'sous_chef/resource/file'
|
10
|
+
require 'sous_chef/resource/gemfile'
|
11
|
+
require 'sous_chef/resource/log'
|
data/sous_chef.gemspec
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/sous_chef/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.name = "sous_chef"
|
6
|
+
gem.version = SousChef::VERSION
|
7
|
+
|
8
|
+
gem.authors = ["Martin Emde", "Brian Donovan"]
|
9
|
+
gem.email = ["memde@engineyard.com", "bdonovan@engineyard.com"]
|
10
|
+
gem.summary = "Chef's prep-cook"
|
11
|
+
gem.description = 'Create bash scripts using a simple chef-like syntax'
|
12
|
+
gem.homepage = "http://github.com/engineyard/sous_chef"
|
13
|
+
gem.license = "MIT"
|
14
|
+
|
15
|
+
gem.files = `git ls-files`.split("\n")
|
16
|
+
gem.test_files = `git ls-files -- spec/*`.split("\n")
|
17
|
+
gem.extra_rdoc_files = %w[ LICENSE README.rdoc ]
|
18
|
+
gem.require_paths = [ "lib" ]
|
19
|
+
|
20
|
+
gem.add_development_dependency 'rake', '~> 10.0'
|
21
|
+
gem.add_development_dependency 'rspec', '~> 1.3'
|
22
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
1
3
|
ruby_version = 'ruby-1.8.6'
|
2
4
|
rubygems_version = '1.3.5'
|
3
5
|
home_dir = '/home/sous_chef'
|
@@ -18,7 +20,7 @@ def report(message)
|
|
18
20
|
end
|
19
21
|
|
20
22
|
file "/etc/config.yml" do
|
21
|
-
content node[:config]
|
23
|
+
content YAML.dump(node[:config])
|
22
24
|
mode 0600
|
23
25
|
end
|
24
26
|
|
@@ -18,9 +18,4 @@ describe SousChef::Resource::Gemfile do
|
|
18
18
|
gemfile = resource('/path/to/project')
|
19
19
|
gemfile.path.should == '/path/to/project/Gemfile'
|
20
20
|
end
|
21
|
-
|
22
|
-
it "makes content a protected method" do
|
23
|
-
gemfile = resource('/path/to/project')
|
24
|
-
gemfile.protected_methods.should include('content')
|
25
|
-
end
|
26
21
|
end
|
metadata
CHANGED
@@ -1,32 +1,55 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: sous_chef
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
|
-
authors:
|
6
|
+
authors:
|
7
7
|
- Martin Emde
|
8
8
|
- Brian Donovan
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
date: 2015-02-04 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '10.0'
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '10.0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rspec
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '1.3'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '1.3'
|
17
42
|
description: Create bash scripts using a simple chef-like syntax
|
18
|
-
email:
|
43
|
+
email:
|
19
44
|
- memde@engineyard.com
|
20
45
|
- bdonovan@engineyard.com
|
21
46
|
executables: []
|
22
|
-
|
23
47
|
extensions: []
|
24
|
-
|
25
|
-
extra_rdoc_files:
|
48
|
+
extra_rdoc_files:
|
26
49
|
- LICENSE
|
27
50
|
- README.rdoc
|
28
|
-
files:
|
29
|
-
- .gitignore
|
51
|
+
files:
|
52
|
+
- ".gitignore"
|
30
53
|
- Gemfile
|
31
54
|
- LICENSE
|
32
55
|
- README.rdoc
|
@@ -41,6 +64,8 @@ files:
|
|
41
64
|
- lib/sous_chef/resource/file.rb
|
42
65
|
- lib/sous_chef/resource/gemfile.rb
|
43
66
|
- lib/sous_chef/resource/log.rb
|
67
|
+
- lib/sous_chef/version.rb
|
68
|
+
- sous_chef.gemspec
|
44
69
|
- spec/fixtures/deploy_command.rb
|
45
70
|
- spec/fixtures/deploy_command_expected.sh
|
46
71
|
- spec/recipe_spec.rb
|
@@ -52,36 +77,33 @@ files:
|
|
52
77
|
- spec/sous_spec.rb
|
53
78
|
- spec/spec.opts
|
54
79
|
- spec/spec_helper.rb
|
55
|
-
has_rdoc: true
|
56
80
|
homepage: http://github.com/engineyard/sous_chef
|
57
|
-
licenses:
|
58
|
-
|
81
|
+
licenses:
|
82
|
+
- MIT
|
83
|
+
metadata: {}
|
59
84
|
post_install_message:
|
60
|
-
rdoc_options:
|
61
|
-
|
62
|
-
require_paths:
|
85
|
+
rdoc_options: []
|
86
|
+
require_paths:
|
63
87
|
- lib
|
64
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
88
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
66
90
|
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version:
|
69
|
-
|
70
|
-
|
71
|
-
requirements:
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0'
|
93
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
72
95
|
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version:
|
75
|
-
version:
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
76
98
|
requirements: []
|
77
|
-
|
78
99
|
rubyforge_project:
|
79
|
-
rubygems_version:
|
100
|
+
rubygems_version: 2.2.2
|
80
101
|
signing_key:
|
81
|
-
specification_version:
|
102
|
+
specification_version: 4
|
82
103
|
summary: Chef's prep-cook
|
83
|
-
test_files:
|
104
|
+
test_files:
|
84
105
|
- spec/fixtures/deploy_command.rb
|
106
|
+
- spec/fixtures/deploy_command_expected.sh
|
85
107
|
- spec/recipe_spec.rb
|
86
108
|
- spec/resource/base_spec.rb
|
87
109
|
- spec/resource/directory_spec.rb
|
@@ -89,4 +111,6 @@ test_files:
|
|
89
111
|
- spec/resource/file_spec.rb
|
90
112
|
- spec/resource/gemfile_spec.rb
|
91
113
|
- spec/sous_spec.rb
|
114
|
+
- spec/spec.opts
|
92
115
|
- spec/spec_helper.rb
|
116
|
+
has_rdoc:
|