railsmachine-shadow_puppet 0.1.12 → 0.1.13
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.
- data/lib/shadow_puppet.rb +8 -4
- data/lib/shadow_puppet/manifest.rb +14 -15
- metadata +2 -2
data/lib/shadow_puppet.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__) + '/shadow_puppet', 'core_ext.rb')
|
1
2
|
require File.join(File.dirname(__FILE__) + '/shadow_puppet', 'manifest.rb')
|
2
3
|
|
3
4
|
class ShadowPuppet::Manifest::Setup < ShadowPuppet::Manifest
|
@@ -5,17 +6,20 @@ class ShadowPuppet::Manifest::Setup < ShadowPuppet::Manifest
|
|
5
6
|
|
6
7
|
def setup_directories()
|
7
8
|
if Process.uid == 0
|
8
|
-
file "/var/
|
9
|
+
file "/var/shadow_puppet",
|
10
|
+
:ensure => "directory",
|
11
|
+
:backup => false
|
12
|
+
file "/etc/shadow_puppet",
|
9
13
|
:ensure => "directory",
|
10
14
|
:backup => false
|
11
15
|
else
|
12
|
-
file ENV["HOME"] + "/.
|
16
|
+
file ENV["HOME"] + "/.shadow_puppet",
|
13
17
|
:ensure => "directory",
|
14
18
|
:backup => false
|
15
|
-
file ENV["HOME"] + "/.
|
19
|
+
file ENV["HOME"] + "/.shadow_puppet/var",
|
16
20
|
:ensure => "directory",
|
17
21
|
:backup => false,
|
18
|
-
:require => file(ENV["HOME"] + "/.
|
22
|
+
:require => file(ENV["HOME"] + "/.shadow_puppet")
|
19
23
|
end
|
20
24
|
end
|
21
25
|
end
|
@@ -1,15 +1,5 @@
|
|
1
1
|
require 'puppet'
|
2
2
|
require 'erb'
|
3
|
-
gem "activesupport"
|
4
|
-
require 'active_support/core_ext/class/attribute_accessors'
|
5
|
-
require 'active_support/core_ext/array'
|
6
|
-
require 'active_support/inflector'
|
7
|
-
require 'active_support/core_ext/hash/indifferent_access'
|
8
|
-
require 'active_support/core_ext/class/inheritable_attributes'
|
9
|
-
require 'active_support/core_ext/duplicable'
|
10
|
-
class Hash #:nodoc:
|
11
|
-
include ActiveSupport::CoreExtensions::Hash::IndifferentAccess
|
12
|
-
end
|
13
3
|
|
14
4
|
module ShadowPuppet
|
15
5
|
# A Manifest is an executable collection of Puppet Resources[http://reductivelabs.com/trac/puppet/wiki/TypeReference].
|
@@ -94,9 +84,12 @@ module ShadowPuppet
|
|
94
84
|
# config hash, which is immediately passed on to the configure
|
95
85
|
# method
|
96
86
|
def initialize(config = {})
|
97
|
-
|
98
|
-
|
99
|
-
|
87
|
+
if Process.uid == 0
|
88
|
+
Puppet[:confdir] = File.expand_path("/etc/shadow_puppet")
|
89
|
+
Puppet[:vardir] = File.expand_path("/var/shadow_puppet")
|
90
|
+
else
|
91
|
+
Puppet[:confdir] = File.expand_path("~/.shadow_puppet")
|
92
|
+
Puppet[:vardir] = File.expand_path("~/.shadow_puppet/var")
|
100
93
|
end
|
101
94
|
Puppet[:user] = Process.uid
|
102
95
|
Puppet[:group] = Process.gid
|
@@ -112,12 +105,17 @@ module ShadowPuppet
|
|
112
105
|
# Declares that the named method or methods will be called whenever
|
113
106
|
# execute is called on an instance of this class. If the last argument is
|
114
107
|
# a Hash, this hash is passed as an argument to all provided methods.
|
108
|
+
# If no options hash is provided, each method is passed the contents of
|
109
|
+
# <tt>configuration[method]</tt>.
|
110
|
+
#
|
115
111
|
# Subclasses of the Manifest class properly inherit the parent classes'
|
116
112
|
# calls to recipe.
|
117
113
|
def self.recipe(*methods)
|
118
114
|
return nil if methods.nil? || methods == []
|
119
115
|
options = methods.extract_options!
|
120
116
|
methods.each do |meth|
|
117
|
+
options = self.configuration[meth.to_sym] if options == {}
|
118
|
+
options ||= {}
|
121
119
|
recipes << [meth.to_sym, options]
|
122
120
|
end
|
123
121
|
end
|
@@ -155,10 +153,11 @@ module ShadowPuppet
|
|
155
153
|
# >> SampleManifest.configuration
|
156
154
|
# => {"name" => 'test'}
|
157
155
|
#
|
158
|
-
# Subsequent calls to configure perform a
|
156
|
+
# Subsequent calls to configure perform a deep_merge of the
|
159
157
|
# provided <tt>hash</tt> into the pre-existing configuration
|
160
158
|
def self.configure(hash)
|
161
|
-
|
159
|
+
hash ||= HashWithIndifferentAccess.new
|
160
|
+
write_inheritable_attribute(:configuration, hash.deep_merge(configuration))
|
162
161
|
end
|
163
162
|
class << self
|
164
163
|
alias_method :configuration=, :configure
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: railsmachine-shadow_puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jesse Newland
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-03-04 00:00:00 -08:00
|
13
13
|
default_executable: shadow_puppet
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|