sous_chef 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|