vault-tree 0.1.0
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 +26 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +43 -0
- data/LICENSE.txt +22 -0
- data/README.md +118 -0
- data/Rakefile +17 -0
- data/VagrantFile +30 -0
- data/features/core.feature +44 -0
- data/features/exceptions.feature +41 -0
- data/features/steps/core.steps.rb +168 -0
- data/features/steps/exceptions.steps.rb +103 -0
- data/features/support/env.rb +1 -0
- data/features/world.rb +3 -0
- data/lib/vault-tree.rb +7 -0
- data/lib/vault-tree/config/dependencies.rb +4 -0
- data/lib/vault-tree/config/lib.rb +2 -0
- data/lib/vault-tree/config/path_helpers.rb +49 -0
- data/lib/vault-tree/config/string.rb +25 -0
- data/lib/vault-tree/contract/close_validator.rb +35 -0
- data/lib/vault-tree/contract/contract.rb +85 -0
- data/lib/vault-tree/contract/contract_presenter.rb +27 -0
- data/lib/vault-tree/contract/doorman.rb +112 -0
- data/lib/vault-tree/contract/null_vault.rb +16 -0
- data/lib/vault-tree/contract/open_validator.rb +20 -0
- data/lib/vault-tree/contract/vault.rb +96 -0
- data/lib/vault-tree/exceptions/empty_vault.rb +8 -0
- data/lib/vault-tree/exceptions/fill_attempt_master_password.rb +6 -0
- data/lib/vault-tree/exceptions/invalid_signature.rb +0 -0
- data/lib/vault-tree/exceptions/malformed_json.rb +0 -0
- data/lib/vault-tree/exceptions/missing_external_data.rb +6 -0
- data/lib/vault-tree/exceptions/missing_partner_decryption_key.rb +6 -0
- data/lib/vault-tree/exceptions/missing_passphrase.rb +6 -0
- data/lib/vault-tree/exceptions/non_unique_vault_id.rb +0 -0
- data/lib/vault-tree/exceptions/unsupported_keyword.rb +6 -0
- data/lib/vault-tree/exceptions/vault_does_not_exist.rb +6 -0
- data/lib/vault-tree/exceptions/vault_tree_exception.rb +6 -0
- data/lib/vault-tree/keywords/decryption_key.rb +14 -0
- data/lib/vault-tree/keywords/external_data.rb +13 -0
- data/lib/vault-tree/keywords/keyword.rb +19 -0
- data/lib/vault-tree/keywords/keyword_interpreter.rb +45 -0
- data/lib/vault-tree/keywords/master_passphrase.rb +9 -0
- data/lib/vault-tree/keywords/public_encryption_key.rb +27 -0
- data/lib/vault-tree/keywords/random_number.rb +9 -0
- data/lib/vault-tree/keywords/shared_key.rb +24 -0
- data/lib/vault-tree/keywords/unlocked.rb +9 -0
- data/lib/vault-tree/keywords/vault_contents.rb +13 -0
- data/lib/vault-tree/lock_smith/asymmetric_cipher.rb +31 -0
- data/lib/vault-tree/lock_smith/crypto_hash.rb +11 -0
- data/lib/vault-tree/lock_smith/digital_signature.rb +32 -0
- data/lib/vault-tree/lock_smith/encryption_key_pair.rb +25 -0
- data/lib/vault-tree/lock_smith/null_vault.rb +4 -0
- data/lib/vault-tree/lock_smith/random_number.rb +11 -0
- data/lib/vault-tree/lock_smith/shared_key_pair.rb +12 -0
- data/lib/vault-tree/lock_smith/signing_key_pair.rb +25 -0
- data/lib/vault-tree/lock_smith/symmetric_cipher.rb +25 -0
- data/lib/vault-tree/util/json.rb +16 -0
- data/lib/vault-tree/version.rb +3 -0
- data/spec/app/locksmith/asymmetric_cipher_spec.rb +25 -0
- data/spec/app/locksmith/signing_key_pair_spec.rb +22 -0
- data/spec/spec_helper.rb +5 -0
- data/spec/support/fixtures/blank_simple_test_contract.json +14 -0
- data/spec/support/fixtures/broken_contract.json +55 -0
- data/spec/support/fixtures/one_two_three-0.5.0.EXP.json +105 -0
- data/spec/support/fixtures/reference_contract.1.0.0.json +227 -0
- data/spec/support/fixtures/simple_test_contract.json +14 -0
- data/support/cookbooks/ark/.gitignore +12 -0
- data/support/cookbooks/ark/.kitchen.yml +34 -0
- data/support/cookbooks/ark/.travis.yml +6 -0
- data/support/cookbooks/ark/Berksfile +9 -0
- data/support/cookbooks/ark/CHANGELOG.md +87 -0
- data/support/cookbooks/ark/CONTRIBUTING.md +257 -0
- data/support/cookbooks/ark/README.md +301 -0
- data/support/cookbooks/ark/Rakefile +36 -0
- data/support/cookbooks/ark/TESTING.md +25 -0
- data/support/cookbooks/ark/Toftfile +15 -0
- data/support/cookbooks/ark/attributes/default.rb +6 -0
- data/support/cookbooks/ark/chefignore +96 -0
- data/support/cookbooks/ark/files/default/foo.tar.gz +0 -0
- data/support/cookbooks/ark/files/default/foo.tbz +0 -0
- data/support/cookbooks/ark/files/default/foo.tgz +0 -0
- data/support/cookbooks/ark/files/default/foo.zip +0 -0
- data/support/cookbooks/ark/files/default/tests/minitest/default_test.rb +0 -0
- data/support/cookbooks/ark/files/default/tests/minitest/support/helpers.rb +0 -0
- data/support/cookbooks/ark/files/default/tests/minitest/test_test.rb +94 -0
- data/support/cookbooks/ark/libraries/default.rb +167 -0
- data/support/cookbooks/ark/metadata.rb +13 -0
- data/support/cookbooks/ark/providers/default.rb +370 -0
- data/support/cookbooks/ark/recipes/default.rb +31 -0
- data/support/cookbooks/ark/recipes/test.rb +138 -0
- data/support/cookbooks/ark/resources/default.rb +54 -0
- data/support/cookbooks/ark/templates/default/add_to_path.sh.erb +1 -0
- data/support/cookbooks/ark/test/support/Gemfile +4 -0
- data/support/cookbooks/build-essential/README.md +24 -0
- data/support/cookbooks/build-essential/metadata.rb +10 -0
- data/support/cookbooks/build-essential/recipes/default.rb +45 -0
- data/support/cookbooks/chruby/.gitignore +15 -0
- data/support/cookbooks/chruby/.kitchen.yml +26 -0
- data/support/cookbooks/chruby/.ruby_version +1 -0
- data/support/cookbooks/chruby/Berksfile +3 -0
- data/support/cookbooks/chruby/Gemfile +7 -0
- data/support/cookbooks/chruby/LICENSE +14 -0
- data/support/cookbooks/chruby/README.md +92 -0
- data/support/cookbooks/chruby/Rakefile +7 -0
- data/support/cookbooks/chruby/Thorfile +6 -0
- data/support/cookbooks/chruby/Vagrantfile +86 -0
- data/support/cookbooks/chruby/attributes/default.rb +10 -0
- data/support/cookbooks/chruby/chefignore +96 -0
- data/support/cookbooks/chruby/metadata.rb +11 -0
- data/support/cookbooks/chruby/recipes/default.rb +43 -0
- data/support/cookbooks/chruby/recipes/system.rb +25 -0
- data/support/cookbooks/chruby/templates/default/chruby.sh.erb +22 -0
- data/support/cookbooks/chruby/test/integration/default/bash/embedded_test.sh +1 -0
- data/support/cookbooks/git/.gitignore +14 -0
- data/support/cookbooks/git/.kitchen.yml +46 -0
- data/support/cookbooks/git/Berksfile +8 -0
- data/support/cookbooks/git/CHANGELOG.md +87 -0
- data/support/cookbooks/git/CONTRIBUTING +29 -0
- data/support/cookbooks/git/Gemfile +3 -0
- data/support/cookbooks/git/LICENSE +201 -0
- data/support/cookbooks/git/README.md +115 -0
- data/support/cookbooks/git/TESTING.md +25 -0
- data/support/cookbooks/git/attributes/default.rb +40 -0
- data/support/cookbooks/git/metadata.rb +35 -0
- data/support/cookbooks/git/recipes/default.rb +53 -0
- data/support/cookbooks/git/recipes/server.rb +58 -0
- data/support/cookbooks/git/recipes/source.rb +49 -0
- data/support/cookbooks/git/recipes/windows.rb +37 -0
- data/support/cookbooks/git/templates/default/git-xinetd.d.erb +10 -0
- data/support/cookbooks/git/templates/default/sv-git-daemon-log-run.erb +2 -0
- data/support/cookbooks/git/templates/default/sv-git-daemon-run.erb +3 -0
- data/support/cookbooks/install_ruby/README.md +3 -0
- data/support/cookbooks/install_ruby/metadata.rb +10 -0
- data/support/cookbooks/install_ruby/recipes/default.rb +14 -0
- data/support/cookbooks/ruby_build/.gitignore +6 -0
- data/support/cookbooks/ruby_build/.kitchen.yml +31 -0
- data/support/cookbooks/ruby_build/.travis.yml +4 -0
- data/support/cookbooks/ruby_build/Berksfile +10 -0
- data/support/cookbooks/ruby_build/CHANGELOG.md +72 -0
- data/support/cookbooks/ruby_build/Gemfile +14 -0
- data/support/cookbooks/ruby_build/README.md +338 -0
- data/support/cookbooks/ruby_build/Rakefile +21 -0
- data/support/cookbooks/ruby_build/attributes/default.rb +67 -0
- data/support/cookbooks/ruby_build/chefignore +53 -0
- data/support/cookbooks/ruby_build/libraries/ruby_build_recipe_helpers.rb +40 -0
- data/support/cookbooks/ruby_build/metadata.rb +18 -0
- data/support/cookbooks/ruby_build/providers/ruby.rb +88 -0
- data/support/cookbooks/ruby_build/recipes/default.rb +69 -0
- data/support/cookbooks/ruby_build/resources/ruby.rb +33 -0
- data/support/cookbooks/ruby_build/test/cookbooks/alltherubies/metadata.rb +10 -0
- data/support/cookbooks/ruby_build/test/cookbooks/alltherubies/recipes/default.rb +59 -0
- data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/_verify_tests.bash +33 -0
- data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.8.7.bats +29 -0
- data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.9.2.bats +18 -0
- data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.9.3.bats +18 -0
- data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_2.0.0.bats +18 -0
- data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_jruby.bats +20 -0
- data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_rbx.bats +18 -0
- data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_ree.bats +19 -0
- data/support/cookbooks/ruby_build/test/integration/installation/bats/installation.bats +6 -0
- data/support/scripts/libsodium_ubuntu.sh +80 -0
- data/support/tasks/.gitkeep +0 -0
- data/support/tasks/libsodium_install.rb +57 -0
- data/vault-tree.gemspec +26 -0
- metadata +305 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
name "ark"
|
|
2
|
+
maintainer "Bryan W. Berry"
|
|
3
|
+
maintainer_email "bryan.berry@gmail.com"
|
|
4
|
+
license "Apache 2.0"
|
|
5
|
+
description "Installs/Configures ark"
|
|
6
|
+
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
|
|
7
|
+
version "0.4.1"
|
|
8
|
+
|
|
9
|
+
%w{ debian ubuntu centos redhat fedora }.each do |os|
|
|
10
|
+
supports os
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
recipe "ark::default", "Installs and configures ark"
|
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Cookbook Name:: ark
|
|
3
|
+
# Provider:: Ark
|
|
4
|
+
#
|
|
5
|
+
# Author:: Bryan W. Berry <bryan.berry@gmail.com>
|
|
6
|
+
# Author:: Sean OMeara <someara@opscode.com
|
|
7
|
+
# Copyright 2012, Bryan W. Berry
|
|
8
|
+
# Copyright 2013, Opscode, Inc.
|
|
9
|
+
#
|
|
10
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
11
|
+
# you may not use this file except in compliance with the License.
|
|
12
|
+
# You may obtain a copy of the License at
|
|
13
|
+
#
|
|
14
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
15
|
+
#
|
|
16
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
17
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
18
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19
|
+
# See the License for the specific language governing permissions and
|
|
20
|
+
# limitations under the License.
|
|
21
|
+
#
|
|
22
|
+
|
|
23
|
+
use_inline_resources if defined?(use_inline_resources)
|
|
24
|
+
include ::Opscode::Ark::ProviderHelpers
|
|
25
|
+
|
|
26
|
+
# From resources/default.rb
|
|
27
|
+
# :install, :put, :dump, :cherry_pick, :install_with_make, :configure, :setup_py_build, :setup_py_install, :setup_py
|
|
28
|
+
|
|
29
|
+
# Used in test.rb
|
|
30
|
+
# :install, :put, :dump, :cherry_pick, :install_with_make, :configure
|
|
31
|
+
|
|
32
|
+
#################
|
|
33
|
+
# action :install
|
|
34
|
+
#################
|
|
35
|
+
action :install do
|
|
36
|
+
set_paths
|
|
37
|
+
|
|
38
|
+
directory new_resource.path do
|
|
39
|
+
recursive true
|
|
40
|
+
action :create
|
|
41
|
+
notifies :run, "execute[unpack #{new_resource.release_file}]"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
remote_file new_resource.release_file do
|
|
45
|
+
Chef::Log.debug("DEBUG: new_resource.release_file")
|
|
46
|
+
source new_resource.url
|
|
47
|
+
if new_resource.checksum then checksum new_resource.checksum end
|
|
48
|
+
action :create
|
|
49
|
+
notifies :run, "execute[unpack #{new_resource.release_file}]"
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# unpack based on file extension
|
|
53
|
+
_unpack_command = unpack_command
|
|
54
|
+
execute "unpack #{new_resource.release_file}" do
|
|
55
|
+
command _unpack_command
|
|
56
|
+
cwd new_resource.path
|
|
57
|
+
environment new_resource.environment
|
|
58
|
+
notifies :run, "execute[set owner on #{new_resource.path}]"
|
|
59
|
+
action :nothing
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# set_owner
|
|
63
|
+
execute "set owner on #{new_resource.path}" do
|
|
64
|
+
command "/bin/chown -R #{new_resource.owner}:#{new_resource.group} #{new_resource.path}"
|
|
65
|
+
action :nothing
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# symlink binaries
|
|
69
|
+
new_resource.has_binaries.each do |bin|
|
|
70
|
+
link ::File.join(new_resource.prefix_bin, ::File.basename(bin)) do
|
|
71
|
+
to ::File.join(new_resource.path, bin)
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# action_link_paths
|
|
76
|
+
link new_resource.home_dir do
|
|
77
|
+
to new_resource.path
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# Add to path for interactive bash sessions
|
|
81
|
+
template "/etc/profile.d/#{new_resource.name}.sh" do
|
|
82
|
+
cookbook "ark"
|
|
83
|
+
source "add_to_path.sh.erb"
|
|
84
|
+
owner "root"
|
|
85
|
+
group "root"
|
|
86
|
+
mode "0755"
|
|
87
|
+
cookbook "ark"
|
|
88
|
+
variables( :directory => "#{new_resource.path}/bin" )
|
|
89
|
+
only_if { new_resource.append_env_path }
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Add to path for the current chef-client converge.
|
|
93
|
+
bin_path = ::File.join(new_resource.path, 'bin')
|
|
94
|
+
ruby_block "adding '#{bin_path}' to chef-client ENV['PATH']" do
|
|
95
|
+
block do
|
|
96
|
+
ENV['PATH'] = bin_path + ':' + ENV['PATH']
|
|
97
|
+
end
|
|
98
|
+
only_if{ new_resource.append_env_path and ENV['PATH'].scan(bin_path).empty? }
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
##############
|
|
104
|
+
# action :put
|
|
105
|
+
##############
|
|
106
|
+
action :put do
|
|
107
|
+
set_put_paths
|
|
108
|
+
|
|
109
|
+
directory new_resource.path do
|
|
110
|
+
recursive true
|
|
111
|
+
action :create
|
|
112
|
+
notifies :run, "execute[unpack #{new_resource.release_file}]"
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# download
|
|
116
|
+
remote_file new_resource.release_file do
|
|
117
|
+
source new_resource.url
|
|
118
|
+
if new_resource.checksum then checksum new_resource.checksum end
|
|
119
|
+
action :create
|
|
120
|
+
notifies :run, "execute[unpack #{new_resource.release_file}]"
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# unpack based on file extension
|
|
124
|
+
_unpack_command = unpack_command
|
|
125
|
+
execute "unpack #{new_resource.release_file}" do
|
|
126
|
+
command _unpack_command
|
|
127
|
+
cwd new_resource.path
|
|
128
|
+
environment new_resource.environment
|
|
129
|
+
notifies :run, "execute[set owner on #{new_resource.path}]"
|
|
130
|
+
action :nothing
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# set_owner
|
|
134
|
+
execute "set owner on #{new_resource.path}" do
|
|
135
|
+
command "/bin/chown -R #{new_resource.owner}:#{new_resource.group} #{new_resource.path}"
|
|
136
|
+
action :nothing
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
###########################
|
|
141
|
+
# action :dump
|
|
142
|
+
###########################
|
|
143
|
+
action :dump do
|
|
144
|
+
set_dump_paths
|
|
145
|
+
|
|
146
|
+
directory new_resource.path do
|
|
147
|
+
recursive true
|
|
148
|
+
action :create
|
|
149
|
+
notifies :run, "execute[unpack #{new_resource.release_file}]"
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# download
|
|
153
|
+
remote_file new_resource.release_file do
|
|
154
|
+
Chef::Log.debug("DEBUG: new_resource.release_file #{new_resource.release_file}")
|
|
155
|
+
source new_resource.url
|
|
156
|
+
if new_resource.checksum then checksum new_resource.checksum end
|
|
157
|
+
action :create
|
|
158
|
+
notifies :run, "execute[unpack #{new_resource.release_file}]"
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
# unpack based on file extension
|
|
162
|
+
_dump_command = dump_command
|
|
163
|
+
execute "unpack #{new_resource.release_file}" do
|
|
164
|
+
command _dump_command
|
|
165
|
+
cwd new_resource.path
|
|
166
|
+
environment new_resource.environment
|
|
167
|
+
notifies :run, "execute[set owner on #{new_resource.path}]"
|
|
168
|
+
action :nothing
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
# set_owner
|
|
172
|
+
execute "set owner on #{new_resource.path}" do
|
|
173
|
+
command "/bin/chown -R #{new_resource.owner}:#{new_resource.group} #{new_resource.path}"
|
|
174
|
+
action :nothing
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
###########################
|
|
179
|
+
# action :unzip
|
|
180
|
+
###########################
|
|
181
|
+
action :unzip do
|
|
182
|
+
set_dump_paths
|
|
183
|
+
|
|
184
|
+
directory new_resource.path do
|
|
185
|
+
recursive true
|
|
186
|
+
action :create
|
|
187
|
+
notifies :run, "execute[unpack #{new_resource.release_file}]"
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
# download
|
|
191
|
+
remote_file new_resource.release_file do
|
|
192
|
+
Chef::Log.debug("DEBUG: new_resource.release_file #{new_resource.release_file}")
|
|
193
|
+
source new_resource.url
|
|
194
|
+
if new_resource.checksum then checksum new_resource.checksum end
|
|
195
|
+
action :create
|
|
196
|
+
notifies :run, "execute[unpack #{new_resource.release_file}]"
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
# unpack based on file extension
|
|
200
|
+
_unzip_command = unzip_command
|
|
201
|
+
execute "unpack #{new_resource.release_file}" do
|
|
202
|
+
command _unzip_command
|
|
203
|
+
cwd new_resource.path
|
|
204
|
+
environment new_resource.environment
|
|
205
|
+
notifies :run, "execute[set owner on #{new_resource.path}]"
|
|
206
|
+
action :nothing
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
# set_owner
|
|
210
|
+
execute "set owner on #{new_resource.path}" do
|
|
211
|
+
command "/bin/chown -R #{new_resource.owner}:#{new_resource.group} #{new_resource.path}"
|
|
212
|
+
action :nothing
|
|
213
|
+
end
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
#####################
|
|
217
|
+
# action :cherry_pick
|
|
218
|
+
#####################
|
|
219
|
+
action :cherry_pick do
|
|
220
|
+
set_dump_paths
|
|
221
|
+
Chef::Log.debug("DEBUG: new_resource.creates #{new_resource.creates}")
|
|
222
|
+
|
|
223
|
+
directory new_resource.path do
|
|
224
|
+
recursive true
|
|
225
|
+
action :create
|
|
226
|
+
notifies :run, "execute[cherry_pick #{new_resource.creates} from #{new_resource.release_file}]"
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
# download
|
|
230
|
+
remote_file new_resource.release_file do
|
|
231
|
+
source new_resource.url
|
|
232
|
+
if new_resource.checksum then checksum new_resource.checksum end
|
|
233
|
+
action :create
|
|
234
|
+
notifies :run, "execute[cherry_pick #{new_resource.creates} from #{new_resource.release_file}]"
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
_unpack_type = unpack_type
|
|
238
|
+
_cherry_pick_command = cherry_pick_command
|
|
239
|
+
execute "cherry_pick #{new_resource.creates} from #{new_resource.release_file}" do
|
|
240
|
+
Chef::Log.debug("DEBUG: unpack_type: #{_unpack_type}")
|
|
241
|
+
command _cherry_pick_command
|
|
242
|
+
creates "#{new_resource.path}/#{new_resource.creates}"
|
|
243
|
+
notifies :run, "execute[set owner on #{new_resource.path}]"
|
|
244
|
+
action :nothing
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
# set_owner
|
|
248
|
+
execute "set owner on #{new_resource.path}" do
|
|
249
|
+
command "/bin/chown -R #{new_resource.owner}:#{new_resource.group} #{new_resource.path}"
|
|
250
|
+
action :nothing
|
|
251
|
+
end
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
###########################
|
|
256
|
+
# action :install_with_make
|
|
257
|
+
###########################
|
|
258
|
+
action :install_with_make do
|
|
259
|
+
set_paths
|
|
260
|
+
|
|
261
|
+
directory new_resource.path do
|
|
262
|
+
recursive true
|
|
263
|
+
action :create
|
|
264
|
+
notifies :run, "execute[unpack #{new_resource.release_file}]"
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
remote_file new_resource.release_file do
|
|
268
|
+
Chef::Log.debug("DEBUG: new_resource.release_file")
|
|
269
|
+
source new_resource.url
|
|
270
|
+
if new_resource.checksum then checksum new_resource.checksum end
|
|
271
|
+
action :create
|
|
272
|
+
notifies :run, "execute[unpack #{new_resource.release_file}]"
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
# unpack based on file extension
|
|
276
|
+
_unpack_command = unpack_command
|
|
277
|
+
execute "unpack #{new_resource.release_file}" do
|
|
278
|
+
command _unpack_command
|
|
279
|
+
cwd new_resource.path
|
|
280
|
+
environment new_resource.environment
|
|
281
|
+
notifies :run, "execute[autogen #{new_resource.path}]"
|
|
282
|
+
notifies :run, "execute[configure #{new_resource.path}]"
|
|
283
|
+
notifies :run, "execute[make #{new_resource.path}]"
|
|
284
|
+
notifies :run, "execute[make install #{new_resource.path}]"
|
|
285
|
+
action :nothing
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
execute "autogen #{new_resource.path}" do
|
|
289
|
+
command "./autogen.sh"
|
|
290
|
+
only_if { ::File.exist? "#{new_resource.path}/autogen.sh" }
|
|
291
|
+
cwd new_resource.path
|
|
292
|
+
environment new_resource.environment
|
|
293
|
+
action :nothing
|
|
294
|
+
ignore_failure true
|
|
295
|
+
end
|
|
296
|
+
|
|
297
|
+
execute "configure #{new_resource.path}" do
|
|
298
|
+
command "./configure #{new_resource.autoconf_opts.join(' ')}"
|
|
299
|
+
only_if { ::File.exist? "#{new_resource.path}/configure" }
|
|
300
|
+
cwd new_resource.path
|
|
301
|
+
environment new_resource.environment
|
|
302
|
+
action :nothing
|
|
303
|
+
end
|
|
304
|
+
|
|
305
|
+
execute "make #{new_resource.path}" do
|
|
306
|
+
command "make #{new_resource.make_opts.join(' ')}"
|
|
307
|
+
cwd new_resource.path
|
|
308
|
+
environment new_resource.environment
|
|
309
|
+
action :nothing
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
execute "make install #{new_resource.path}" do
|
|
313
|
+
command "make install #{new_resource.make_opts.join(' ')}"
|
|
314
|
+
cwd new_resource.path
|
|
315
|
+
environment new_resource.environment
|
|
316
|
+
action :nothing
|
|
317
|
+
end
|
|
318
|
+
|
|
319
|
+
# unless new_resource.creates and ::File.exists? new_resource.creates
|
|
320
|
+
# end
|
|
321
|
+
end
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
action :configure do
|
|
327
|
+
set_paths
|
|
328
|
+
|
|
329
|
+
directory new_resource.path do
|
|
330
|
+
recursive true
|
|
331
|
+
action :create
|
|
332
|
+
notifies :run, "execute[unpack #{new_resource.release_file}]"
|
|
333
|
+
end
|
|
334
|
+
|
|
335
|
+
remote_file new_resource.release_file do
|
|
336
|
+
Chef::Log.debug("DEBUG: new_resource.release_file")
|
|
337
|
+
source new_resource.url
|
|
338
|
+
if new_resource.checksum then checksum new_resource.checksum end
|
|
339
|
+
action :create
|
|
340
|
+
notifies :run, "execute[unpack #{new_resource.release_file}]"
|
|
341
|
+
end
|
|
342
|
+
|
|
343
|
+
# unpack based on file extension
|
|
344
|
+
_unpack_command = unpack_command
|
|
345
|
+
execute "unpack #{new_resource.release_file}" do
|
|
346
|
+
command _unpack_command
|
|
347
|
+
cwd new_resource.path
|
|
348
|
+
environment new_resource.environment
|
|
349
|
+
notifies :run, "execute[autogen #{new_resource.path}]"
|
|
350
|
+
notifies :run, "execute[configure #{new_resource.path}]"
|
|
351
|
+
action :nothing
|
|
352
|
+
end
|
|
353
|
+
|
|
354
|
+
execute "autogen #{new_resource.path}" do
|
|
355
|
+
command "./autogen.sh"
|
|
356
|
+
only_if { ::File.exist? "#{new_resource.path}/autogen.sh" }
|
|
357
|
+
cwd new_resource.path
|
|
358
|
+
environment new_resource.environment
|
|
359
|
+
action :nothing
|
|
360
|
+
ignore_failure true
|
|
361
|
+
end
|
|
362
|
+
|
|
363
|
+
execute "configure #{new_resource.path}" do
|
|
364
|
+
command "./configure #{new_resource.autoconf_opts.join(' ')}"
|
|
365
|
+
only_if { ::File.exist? "#{new_resource.path}/configure" }
|
|
366
|
+
cwd new_resource.path
|
|
367
|
+
environment new_resource.environment
|
|
368
|
+
action :nothing
|
|
369
|
+
end
|
|
370
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Cookbook Name:: ark
|
|
3
|
+
# Recipe:: default
|
|
4
|
+
#
|
|
5
|
+
# Author:: Bryan W. Berry <bryan.berry@gmail.com>
|
|
6
|
+
# Copyright 2012, Bryan W. Berry
|
|
7
|
+
#
|
|
8
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
# you may not use this file except in compliance with the License.
|
|
10
|
+
# You may obtain a copy of the License at
|
|
11
|
+
#
|
|
12
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
#
|
|
14
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
15
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
16
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17
|
+
# See the License for the specific language governing permissions and
|
|
18
|
+
# limitations under the License.
|
|
19
|
+
#
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
package "unzip"
|
|
23
|
+
package "libtool"
|
|
24
|
+
package "rsync"
|
|
25
|
+
package "autoconf"
|
|
26
|
+
package "make"
|
|
27
|
+
package "autogen" unless platform_family?("rhel", "fedora")
|
|
28
|
+
|
|
29
|
+
if platform?("freebsd")
|
|
30
|
+
package "gtar"
|
|
31
|
+
end
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# require 'fileutils'
|
|
2
|
+
|
|
3
|
+
# remove file so we can test sending notification on its creation
|
|
4
|
+
if ::File.exist? "/tmp/foobarbaz/foo1.txt"
|
|
5
|
+
FileUtils.rm_f "/tmp/foobarbaz/foo1.txt"
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
ruby_block "test_notification" do
|
|
9
|
+
block do
|
|
10
|
+
if ::File.exist? "/tmp/foobarbaz/foo1.txt"
|
|
11
|
+
FileUtils.touch "/tmp/foobarbaz/notification_successful.txt"
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
action :nothing
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
user 'foobarbaz'
|
|
18
|
+
|
|
19
|
+
directory "/opt/bin" do
|
|
20
|
+
recursive true
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
ark "foo" do
|
|
24
|
+
url 'https://github.com/bryanwb/chef-ark/raw/master/files/default/foo.tar.gz'
|
|
25
|
+
checksum '5996e676f17457c823d86f1605eaa44ca8a81e70d6a0e5f8e45b51e62e0c52e8'
|
|
26
|
+
version '2'
|
|
27
|
+
prefix_root "/usr/local"
|
|
28
|
+
owner "foobarbaz"
|
|
29
|
+
group 'foobarbaz'
|
|
30
|
+
has_binaries [ 'bin/do_foo', 'bin/do_more_foo' ]
|
|
31
|
+
action :install
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
ark 'test_put' do
|
|
35
|
+
url 'https://github.com/bryanwb/chef-ark/raw/master/files/default/foo.tar.gz'
|
|
36
|
+
checksum '5996e676f17457c823d86f1605eaa44ca8a81e70d6a0e5f8e45b51e62e0c52e8'
|
|
37
|
+
owner 'foobarbaz'
|
|
38
|
+
group 'foobarbaz'
|
|
39
|
+
action :put
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
ark "test_dump" do
|
|
43
|
+
url 'https://github.com/bryanwb/chef-ark/raw/master/files/default/foo.zip'
|
|
44
|
+
checksum 'deea3a324115c9ca0f3078362f807250080bf1b27516f7eca9d34aad863a11e0'
|
|
45
|
+
path '/usr/local/foo_dump'
|
|
46
|
+
creates 'foo1.txt'
|
|
47
|
+
owner 'foobarbaz'
|
|
48
|
+
group 'foobarbaz'
|
|
49
|
+
action :dump
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
ark 'cherry_pick_test' do
|
|
53
|
+
url 'https://github.com/bryanwb/chef-ark/raw/master/files/default/foo.tar.gz'
|
|
54
|
+
checksum '5996e676f17457c823d86f1605eaa44ca8a81e70d6a0e5f8e45b51e62e0c52e8'
|
|
55
|
+
path '/usr/local/foo_cherry_pick'
|
|
56
|
+
owner 'foobarbaz'
|
|
57
|
+
group 'foobarbaz'
|
|
58
|
+
creates "foo_sub/foo1.txt"
|
|
59
|
+
action :cherry_pick
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
ark 'cherry_pick_with_zip' do
|
|
63
|
+
url 'https://github.com/bryanwb/chef-ark/raw/master/files/default/foo.zip'
|
|
64
|
+
checksum 'deea3a324115c9ca0f3078362f807250080bf1b27516f7eca9d34aad863a11e0'
|
|
65
|
+
path '/usr/local/foo_cherry_pick_from_zip'
|
|
66
|
+
creates "foo_sub/foo1.txt"
|
|
67
|
+
action :cherry_pick
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
ark "foo_append_env" do
|
|
71
|
+
version "7.0.26"
|
|
72
|
+
url 'https://github.com/bryanwb/chef-ark/raw/master/files/default/foo.tar.gz'
|
|
73
|
+
checksum '5996e676f17457c823d86f1605eaa44ca8a81e70d6a0e5f8e45b51e62e0c52e8'
|
|
74
|
+
append_env_path true
|
|
75
|
+
action :install
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
ark "foo_dont_strip" do
|
|
79
|
+
version "2"
|
|
80
|
+
url 'https://github.com/bryanwb/chef-ark/raw/master/files/default/foo.tar.gz'
|
|
81
|
+
checksum '5996e676f17457c823d86f1605eaa44ca8a81e70d6a0e5f8e45b51e62e0c52e8'
|
|
82
|
+
strip_leading_dir false
|
|
83
|
+
action :install
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
ark "foo_zip_strip" do
|
|
87
|
+
version "2"
|
|
88
|
+
url 'https://github.com/bryanwb/chef-ark/raw/master/files/default/foo.zip'
|
|
89
|
+
checksum 'deea3a324115c9ca0f3078362f807250080bf1b27516f7eca9d34aad863a11e0'
|
|
90
|
+
action :install
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
ark "haproxy" do
|
|
94
|
+
url "http://haproxy.1wt.eu/download/1.5/src/snapshot/haproxy-ss-20120403.tar.gz"
|
|
95
|
+
version "1.5"
|
|
96
|
+
checksum 'ba0424bf7d23b3a607ee24bbb855bb0ea347d7ffde0bec0cb12a89623cbaf911'
|
|
97
|
+
make_opts [ 'TARGET=linux26' ]
|
|
98
|
+
action :install_with_make
|
|
99
|
+
end unless platform?("freebsd")
|
|
100
|
+
|
|
101
|
+
ark "foo_alt_bin" do
|
|
102
|
+
url 'https://github.com/bryanwb/chef-ark/raw/master/files/default/foo.tar.gz'
|
|
103
|
+
checksum '5996e676f17457c823d86f1605eaa44ca8a81e70d6a0e5f8e45b51e62e0c52e8'
|
|
104
|
+
version '3'
|
|
105
|
+
prefix_root "/opt"
|
|
106
|
+
prefix_home "/opt"
|
|
107
|
+
prefix_bin "/opt/bin"
|
|
108
|
+
owner "foobarbaz"
|
|
109
|
+
group 'foobarbaz'
|
|
110
|
+
has_binaries [ 'bin/do_foo' ]
|
|
111
|
+
action :install
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
ark "foo_tbz" do
|
|
115
|
+
url 'https://github.com/bryanwb/chef-ark/raw/master/files/default/foo.tbz'
|
|
116
|
+
version '3'
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
ark "foo_tgz" do
|
|
120
|
+
url 'https://github.com/bryanwb/chef-ark/raw/master/files/default/foo.tgz'
|
|
121
|
+
version '3'
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
ark "test notification" do
|
|
125
|
+
url 'https://github.com/bryanwb/chef-ark/raw/master/files/default/foo.zip'
|
|
126
|
+
path "/tmp/foobarbaz"
|
|
127
|
+
creates "foo1.txt"
|
|
128
|
+
action :dump
|
|
129
|
+
notifies :create, "ruby_block[test_notification]", :immediately
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
ark "test_autogen" do
|
|
133
|
+
url 'https://github.com/zeromq/libzmq/tarball/master'
|
|
134
|
+
extension "tar.gz"
|
|
135
|
+
action :configure
|
|
136
|
+
# autoconf in RHEL < 6 is too old
|
|
137
|
+
not_if { platform_family?('rhel') && node['platform_version'].to_f < 6.0 }
|
|
138
|
+
end
|