bincache 0.0.5 → 0.0.6
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/.gitignore +1 -0
- data/VERSION +1 -1
- data/bincache.gemspec +4 -2
- data/lib/bincache/provider/bincache.rb +36 -0
- data/lib/bincache/resource/bincache.rb +36 -0
- data/lib/bincache.rb +8 -0
- metadata +6 -4
data/.gitignore
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.6
|
data/bincache.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{bincache}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Martin Rhoads"]
|
12
|
-
s.date = %q{2010-10-
|
12
|
+
s.date = %q{2010-10-10}
|
13
13
|
s.default_executable = %q{bincache}
|
14
14
|
s.description = %q{longer description of your gem}
|
15
15
|
s.email = %q{martinrhoads@gmail.com}
|
@@ -28,6 +28,8 @@ Gem::Specification.new do |s|
|
|
28
28
|
"bin/bincache",
|
29
29
|
"bincache.gemspec",
|
30
30
|
"lib/bincache.rb",
|
31
|
+
"lib/bincache/provider/bincache.rb",
|
32
|
+
"lib/bincache/resource/bincache.rb",
|
31
33
|
"scripts/script1",
|
32
34
|
"scripts/script2",
|
33
35
|
"scripts/script3",
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'chef/config'
|
2
|
+
require 'chef/log'
|
3
|
+
require 'chef/provider'
|
4
|
+
|
5
|
+
class Chef
|
6
|
+
class Provider
|
7
|
+
class Bincache < Chef::Provider
|
8
|
+
|
9
|
+
def action_run
|
10
|
+
scripts = []
|
11
|
+
|
12
|
+
## find all of the bincache resources that are running and collect the ones that are operating with the same directory
|
13
|
+
bincache_resources = self.run_context.resource_collection.all_resources.select { |r|
|
14
|
+
r.class.inspect == self.class.to_s.gsub(/Provider/,'Resource') &&
|
15
|
+
r.directory == @new_resource.directory }
|
16
|
+
|
17
|
+
## add the scripts from each resource to our script list. Stop after we add our own script
|
18
|
+
bincache_resources.each do |r|
|
19
|
+
scripts << r.script
|
20
|
+
break if r.name == @new_resource.name
|
21
|
+
end
|
22
|
+
|
23
|
+
## run bincache
|
24
|
+
require 'bincache'
|
25
|
+
bincache = BinCache.new
|
26
|
+
bincache.run_series(@new_resource.directory,scripts)
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
def load_current_resource
|
31
|
+
Chef::Resource::File.new(@new_resource.name)
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'chef/resource'
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
class Chef
|
7
|
+
class Resource
|
8
|
+
class Bincache < Chef::Resource
|
9
|
+
|
10
|
+
def initialize(name, run_context=nil)
|
11
|
+
super
|
12
|
+
@resource_name = :bincache
|
13
|
+
@action = "run"
|
14
|
+
@allowed_actions.push(:run)
|
15
|
+
end
|
16
|
+
|
17
|
+
def script(arg=nil)
|
18
|
+
set_or_return(
|
19
|
+
:script,
|
20
|
+
arg,
|
21
|
+
:kind_of => String
|
22
|
+
)
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
def directory(arg=nil)
|
27
|
+
set_or_return(
|
28
|
+
:directory,
|
29
|
+
arg,
|
30
|
+
:kind_of => String
|
31
|
+
)
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/bincache.rb
CHANGED
@@ -1,9 +1,17 @@
|
|
1
1
|
#!/bin/env ruby
|
2
2
|
|
3
|
+
|
3
4
|
require 'digest/md5'
|
4
5
|
require 'rubygems'
|
5
6
|
require 'right_aws'
|
6
7
|
|
8
|
+
|
9
|
+
## don't fail if chef is not installed
|
10
|
+
if Object.const_defined?("Chef")
|
11
|
+
require File.join(File.dirname(__FILE__),'bincache/provider/bincache')
|
12
|
+
require File.join(File.dirname(__FILE__),'bincache/resource/bincache')
|
13
|
+
end
|
14
|
+
|
7
15
|
class BinCache
|
8
16
|
|
9
17
|
def initialize()
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bincache
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 6
|
10
|
+
version: 0.0.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Martin Rhoads
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-10-
|
18
|
+
date: 2010-10-10 00:00:00 -07:00
|
19
19
|
default_executable: bincache
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -51,6 +51,8 @@ files:
|
|
51
51
|
- bin/bincache
|
52
52
|
- bincache.gemspec
|
53
53
|
- lib/bincache.rb
|
54
|
+
- lib/bincache/provider/bincache.rb
|
55
|
+
- lib/bincache/resource/bincache.rb
|
54
56
|
- scripts/script1
|
55
57
|
- scripts/script2
|
56
58
|
- scripts/script3
|