vault-tree 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. data/.gitignore +26 -0
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +43 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +118 -0
  6. data/Rakefile +17 -0
  7. data/VagrantFile +30 -0
  8. data/features/core.feature +44 -0
  9. data/features/exceptions.feature +41 -0
  10. data/features/steps/core.steps.rb +168 -0
  11. data/features/steps/exceptions.steps.rb +103 -0
  12. data/features/support/env.rb +1 -0
  13. data/features/world.rb +3 -0
  14. data/lib/vault-tree.rb +7 -0
  15. data/lib/vault-tree/config/dependencies.rb +4 -0
  16. data/lib/vault-tree/config/lib.rb +2 -0
  17. data/lib/vault-tree/config/path_helpers.rb +49 -0
  18. data/lib/vault-tree/config/string.rb +25 -0
  19. data/lib/vault-tree/contract/close_validator.rb +35 -0
  20. data/lib/vault-tree/contract/contract.rb +85 -0
  21. data/lib/vault-tree/contract/contract_presenter.rb +27 -0
  22. data/lib/vault-tree/contract/doorman.rb +112 -0
  23. data/lib/vault-tree/contract/null_vault.rb +16 -0
  24. data/lib/vault-tree/contract/open_validator.rb +20 -0
  25. data/lib/vault-tree/contract/vault.rb +96 -0
  26. data/lib/vault-tree/exceptions/empty_vault.rb +8 -0
  27. data/lib/vault-tree/exceptions/fill_attempt_master_password.rb +6 -0
  28. data/lib/vault-tree/exceptions/invalid_signature.rb +0 -0
  29. data/lib/vault-tree/exceptions/malformed_json.rb +0 -0
  30. data/lib/vault-tree/exceptions/missing_external_data.rb +6 -0
  31. data/lib/vault-tree/exceptions/missing_partner_decryption_key.rb +6 -0
  32. data/lib/vault-tree/exceptions/missing_passphrase.rb +6 -0
  33. data/lib/vault-tree/exceptions/non_unique_vault_id.rb +0 -0
  34. data/lib/vault-tree/exceptions/unsupported_keyword.rb +6 -0
  35. data/lib/vault-tree/exceptions/vault_does_not_exist.rb +6 -0
  36. data/lib/vault-tree/exceptions/vault_tree_exception.rb +6 -0
  37. data/lib/vault-tree/keywords/decryption_key.rb +14 -0
  38. data/lib/vault-tree/keywords/external_data.rb +13 -0
  39. data/lib/vault-tree/keywords/keyword.rb +19 -0
  40. data/lib/vault-tree/keywords/keyword_interpreter.rb +45 -0
  41. data/lib/vault-tree/keywords/master_passphrase.rb +9 -0
  42. data/lib/vault-tree/keywords/public_encryption_key.rb +27 -0
  43. data/lib/vault-tree/keywords/random_number.rb +9 -0
  44. data/lib/vault-tree/keywords/shared_key.rb +24 -0
  45. data/lib/vault-tree/keywords/unlocked.rb +9 -0
  46. data/lib/vault-tree/keywords/vault_contents.rb +13 -0
  47. data/lib/vault-tree/lock_smith/asymmetric_cipher.rb +31 -0
  48. data/lib/vault-tree/lock_smith/crypto_hash.rb +11 -0
  49. data/lib/vault-tree/lock_smith/digital_signature.rb +32 -0
  50. data/lib/vault-tree/lock_smith/encryption_key_pair.rb +25 -0
  51. data/lib/vault-tree/lock_smith/null_vault.rb +4 -0
  52. data/lib/vault-tree/lock_smith/random_number.rb +11 -0
  53. data/lib/vault-tree/lock_smith/shared_key_pair.rb +12 -0
  54. data/lib/vault-tree/lock_smith/signing_key_pair.rb +25 -0
  55. data/lib/vault-tree/lock_smith/symmetric_cipher.rb +25 -0
  56. data/lib/vault-tree/util/json.rb +16 -0
  57. data/lib/vault-tree/version.rb +3 -0
  58. data/spec/app/locksmith/asymmetric_cipher_spec.rb +25 -0
  59. data/spec/app/locksmith/signing_key_pair_spec.rb +22 -0
  60. data/spec/spec_helper.rb +5 -0
  61. data/spec/support/fixtures/blank_simple_test_contract.json +14 -0
  62. data/spec/support/fixtures/broken_contract.json +55 -0
  63. data/spec/support/fixtures/one_two_three-0.5.0.EXP.json +105 -0
  64. data/spec/support/fixtures/reference_contract.1.0.0.json +227 -0
  65. data/spec/support/fixtures/simple_test_contract.json +14 -0
  66. data/support/cookbooks/ark/.gitignore +12 -0
  67. data/support/cookbooks/ark/.kitchen.yml +34 -0
  68. data/support/cookbooks/ark/.travis.yml +6 -0
  69. data/support/cookbooks/ark/Berksfile +9 -0
  70. data/support/cookbooks/ark/CHANGELOG.md +87 -0
  71. data/support/cookbooks/ark/CONTRIBUTING.md +257 -0
  72. data/support/cookbooks/ark/README.md +301 -0
  73. data/support/cookbooks/ark/Rakefile +36 -0
  74. data/support/cookbooks/ark/TESTING.md +25 -0
  75. data/support/cookbooks/ark/Toftfile +15 -0
  76. data/support/cookbooks/ark/attributes/default.rb +6 -0
  77. data/support/cookbooks/ark/chefignore +96 -0
  78. data/support/cookbooks/ark/files/default/foo.tar.gz +0 -0
  79. data/support/cookbooks/ark/files/default/foo.tbz +0 -0
  80. data/support/cookbooks/ark/files/default/foo.tgz +0 -0
  81. data/support/cookbooks/ark/files/default/foo.zip +0 -0
  82. data/support/cookbooks/ark/files/default/tests/minitest/default_test.rb +0 -0
  83. data/support/cookbooks/ark/files/default/tests/minitest/support/helpers.rb +0 -0
  84. data/support/cookbooks/ark/files/default/tests/minitest/test_test.rb +94 -0
  85. data/support/cookbooks/ark/libraries/default.rb +167 -0
  86. data/support/cookbooks/ark/metadata.rb +13 -0
  87. data/support/cookbooks/ark/providers/default.rb +370 -0
  88. data/support/cookbooks/ark/recipes/default.rb +31 -0
  89. data/support/cookbooks/ark/recipes/test.rb +138 -0
  90. data/support/cookbooks/ark/resources/default.rb +54 -0
  91. data/support/cookbooks/ark/templates/default/add_to_path.sh.erb +1 -0
  92. data/support/cookbooks/ark/test/support/Gemfile +4 -0
  93. data/support/cookbooks/build-essential/README.md +24 -0
  94. data/support/cookbooks/build-essential/metadata.rb +10 -0
  95. data/support/cookbooks/build-essential/recipes/default.rb +45 -0
  96. data/support/cookbooks/chruby/.gitignore +15 -0
  97. data/support/cookbooks/chruby/.kitchen.yml +26 -0
  98. data/support/cookbooks/chruby/.ruby_version +1 -0
  99. data/support/cookbooks/chruby/Berksfile +3 -0
  100. data/support/cookbooks/chruby/Gemfile +7 -0
  101. data/support/cookbooks/chruby/LICENSE +14 -0
  102. data/support/cookbooks/chruby/README.md +92 -0
  103. data/support/cookbooks/chruby/Rakefile +7 -0
  104. data/support/cookbooks/chruby/Thorfile +6 -0
  105. data/support/cookbooks/chruby/Vagrantfile +86 -0
  106. data/support/cookbooks/chruby/attributes/default.rb +10 -0
  107. data/support/cookbooks/chruby/chefignore +96 -0
  108. data/support/cookbooks/chruby/metadata.rb +11 -0
  109. data/support/cookbooks/chruby/recipes/default.rb +43 -0
  110. data/support/cookbooks/chruby/recipes/system.rb +25 -0
  111. data/support/cookbooks/chruby/templates/default/chruby.sh.erb +22 -0
  112. data/support/cookbooks/chruby/test/integration/default/bash/embedded_test.sh +1 -0
  113. data/support/cookbooks/git/.gitignore +14 -0
  114. data/support/cookbooks/git/.kitchen.yml +46 -0
  115. data/support/cookbooks/git/Berksfile +8 -0
  116. data/support/cookbooks/git/CHANGELOG.md +87 -0
  117. data/support/cookbooks/git/CONTRIBUTING +29 -0
  118. data/support/cookbooks/git/Gemfile +3 -0
  119. data/support/cookbooks/git/LICENSE +201 -0
  120. data/support/cookbooks/git/README.md +115 -0
  121. data/support/cookbooks/git/TESTING.md +25 -0
  122. data/support/cookbooks/git/attributes/default.rb +40 -0
  123. data/support/cookbooks/git/metadata.rb +35 -0
  124. data/support/cookbooks/git/recipes/default.rb +53 -0
  125. data/support/cookbooks/git/recipes/server.rb +58 -0
  126. data/support/cookbooks/git/recipes/source.rb +49 -0
  127. data/support/cookbooks/git/recipes/windows.rb +37 -0
  128. data/support/cookbooks/git/templates/default/git-xinetd.d.erb +10 -0
  129. data/support/cookbooks/git/templates/default/sv-git-daemon-log-run.erb +2 -0
  130. data/support/cookbooks/git/templates/default/sv-git-daemon-run.erb +3 -0
  131. data/support/cookbooks/install_ruby/README.md +3 -0
  132. data/support/cookbooks/install_ruby/metadata.rb +10 -0
  133. data/support/cookbooks/install_ruby/recipes/default.rb +14 -0
  134. data/support/cookbooks/ruby_build/.gitignore +6 -0
  135. data/support/cookbooks/ruby_build/.kitchen.yml +31 -0
  136. data/support/cookbooks/ruby_build/.travis.yml +4 -0
  137. data/support/cookbooks/ruby_build/Berksfile +10 -0
  138. data/support/cookbooks/ruby_build/CHANGELOG.md +72 -0
  139. data/support/cookbooks/ruby_build/Gemfile +14 -0
  140. data/support/cookbooks/ruby_build/README.md +338 -0
  141. data/support/cookbooks/ruby_build/Rakefile +21 -0
  142. data/support/cookbooks/ruby_build/attributes/default.rb +67 -0
  143. data/support/cookbooks/ruby_build/chefignore +53 -0
  144. data/support/cookbooks/ruby_build/libraries/ruby_build_recipe_helpers.rb +40 -0
  145. data/support/cookbooks/ruby_build/metadata.rb +18 -0
  146. data/support/cookbooks/ruby_build/providers/ruby.rb +88 -0
  147. data/support/cookbooks/ruby_build/recipes/default.rb +69 -0
  148. data/support/cookbooks/ruby_build/resources/ruby.rb +33 -0
  149. data/support/cookbooks/ruby_build/test/cookbooks/alltherubies/metadata.rb +10 -0
  150. data/support/cookbooks/ruby_build/test/cookbooks/alltherubies/recipes/default.rb +59 -0
  151. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/_verify_tests.bash +33 -0
  152. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.8.7.bats +29 -0
  153. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.9.2.bats +18 -0
  154. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.9.3.bats +18 -0
  155. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_2.0.0.bats +18 -0
  156. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_jruby.bats +20 -0
  157. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_rbx.bats +18 -0
  158. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_ree.bats +19 -0
  159. data/support/cookbooks/ruby_build/test/integration/installation/bats/installation.bats +6 -0
  160. data/support/scripts/libsodium_ubuntu.sh +80 -0
  161. data/support/tasks/.gitkeep +0 -0
  162. data/support/tasks/libsodium_install.rb +57 -0
  163. data/vault-tree.gemspec +26 -0
  164. metadata +305 -0
@@ -0,0 +1,54 @@
1
+ #
2
+ # Cookbook Name:: ark
3
+ # Resource:: Ark
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
+ def initialize(name, run_context=nil)
22
+ super
23
+ @resource_name = :ark
24
+ @allowed_actions.push(:install, :dump, :cherry_pick, :put, :install_with_make, :configure, :setup_py_build, :setup_py_install, :setup_py, :unzip)
25
+ @action = :install
26
+ @provider = Chef::Provider::Ark
27
+ end
28
+
29
+ attr_accessor :path, :release_file, :prefix_bin, :prefix_root, :home_dir, :extension, :version
30
+
31
+ attribute :owner, :kind_of => String, :default => 'root'
32
+ attribute :group, :kind_of => [String, Fixnum], :default => 0
33
+ attribute :url, :kind_of => String, :required => true
34
+ attribute :path, :kind_of => String, :default => nil
35
+ attribute :full_path, :kind_of => String, :default => nil
36
+ attribute :append_env_path, :kind_of => [TrueClass, FalseClass], :default => false
37
+ attribute :checksum, :regex => /^[a-zA-Z0-9]{64}$/, :default => nil
38
+ attribute :has_binaries, :kind_of => Array, :default => []
39
+ attribute :creates, :kind_of => String, :default => nil
40
+ attribute :release_file, :kind_of => String, :default => ''
41
+ attribute :strip_leading_dir, :kind_of => [TrueClass, FalseClass], :default => true
42
+ attribute :mode, :kind_of => Fixnum, :default => 0755
43
+ attribute :prefix_root, :kind_of => String, :default => nil
44
+ attribute :prefix_home, :kind_of => String, :default => nil
45
+ attribute :prefix_bin, :kind_of => String, :default => nil
46
+ attribute :version, :kind_of => String, :default => nil
47
+ attribute :home_dir, :kind_of => String, :default => nil
48
+ attribute :environment, :kind_of => Hash, :default => {}
49
+ attribute :autoconf_opts, :kind_of => Array, :default => []
50
+ attribute :make_opts, :kind_of => Array, :default => []
51
+ attribute :home_dir, :kind_of => String, :default => nil
52
+ attribute :autoconf_opts, :kind_of => Array, :default => []
53
+ attribute :extension, :kind_of => String
54
+
@@ -0,0 +1 @@
1
+ export PATH=<%= @directory -%>:$PATH
@@ -0,0 +1,4 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem 'rake'
4
+ gem 'foodcritic', :platforms => :ruby_19
@@ -0,0 +1,24 @@
1
+ DESCRIPTION
2
+ ===========
3
+
4
+ Installs packages required for compiling C software from source.
5
+
6
+ LICENSE AND AUTHOR
7
+ ==================
8
+
9
+ Author:: Joshua Timberman (<joshua@opscode.com>)
10
+ Author:: Seth Chisamore (<schisamo@opscode.com>)
11
+
12
+ Copyright 2009-2011, Opscode, Inc.
13
+
14
+ Licensed under the Apache License, Version 2.0 (the "License");
15
+ you may not use this file except in compliance with the License.
16
+ You may obtain a copy of the License at
17
+
18
+ http://www.apache.org/licenses/LICENSE-2.0
19
+
20
+ Unless required by applicable law or agreed to in writing, software
21
+ distributed under the License is distributed on an "AS IS" BASIS,
22
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23
+ See the License for the specific language governing permissions and
24
+ limitations under the License.
@@ -0,0 +1,10 @@
1
+ maintainer "Opscode, Inc."
2
+ maintainer_email "cookbooks@opscode.com"
3
+ license "Apache 2.0"
4
+ description "Installs C compiler / build tools"
5
+ version "1.0.0"
6
+ recipe "build-essential", "Installs C compiler and build tools on Linux"
7
+
8
+ %w{ fedora redhat centos ubuntu debian }.each do |os|
9
+ supports os
10
+ end
@@ -0,0 +1,45 @@
1
+ #
2
+ # Cookbook Name:: build-essential
3
+ # Recipe:: default
4
+ #
5
+ # Copyright 2008-2009, Opscode, Inc.
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #
19
+
20
+ case node['platform']
21
+ when "ubuntu","debian"
22
+ %w{build-essential binutils-doc}.each do |pkg|
23
+ package pkg do
24
+ action :install
25
+ end
26
+ end
27
+ when "centos","redhat","fedora"
28
+ %w{gcc gcc-c++ kernel-devel make}.each do |pkg|
29
+ package pkg do
30
+ action :install
31
+ end
32
+ end
33
+ end
34
+
35
+ package "autoconf" do
36
+ action :install
37
+ end
38
+
39
+ package "flex" do
40
+ action :install
41
+ end
42
+
43
+ package "bison" do
44
+ action :install
45
+ end
@@ -0,0 +1,15 @@
1
+ .vagrant
2
+ Berksfile.lock
3
+ *~
4
+ *#
5
+ .#*
6
+ \#*#
7
+ .*.sw[a-z]
8
+ *.un~
9
+ /cookbooks
10
+
11
+ # Bundler
12
+ Gemfile.lock
13
+ bin/*
14
+ .bundle/*
15
+
@@ -0,0 +1,26 @@
1
+ ---
2
+ driver_plugin: vagrant
3
+
4
+ platforms:
5
+ - name: ubuntu-12.04
6
+ driver_config:
7
+ box: canonical-ubuntu-12.04
8
+ box_url: http://cloud-images.ubuntu.com/vagrant/precise/current/precise-server-cloudimg-amd64-vagrant-disk1.box
9
+ require_chef_omnibus: true
10
+ - name: ubuntu-10.04
11
+ driver_config:
12
+ box: opscode-ubuntu-10.04
13
+ box_url: http://opscode-vm.s3.amazonaws.com/vagrant/opscode_ubuntu-10.04_chef-11.2.0.box
14
+ - name: centos-6.3
15
+ driver_config:
16
+ box: opscode-centos-6.3
17
+ box_url: http://opscode-vm.s3.amazonaws.com/vagrant/opscode_centos-6.3_chef-11.2.0.box
18
+ - name: centos-5.8
19
+ driver_config:
20
+ box: opscode-centos-5.8
21
+ box_url: http://opscode-vm.s3.amazonaws.com/vagrant/opscode_centos-5.8_chef-11.2.0.box
22
+
23
+ suites:
24
+ - name: default
25
+ run_list: ["recipe[chruby]"]
26
+ attributes: {}
@@ -0,0 +1 @@
1
+ 1.9.3-p432
@@ -0,0 +1,3 @@
1
+ site :opscode
2
+
3
+ metadata
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'berkshelf'
4
+ gem "chefspec", "~> 1.2.0"
5
+ gem 'thor-foodcritic'
6
+ gem 'test-kitchen', '~> 1.0.0.alpha.6'
7
+ gem 'kitchen-vagrant', :group => :integration
@@ -0,0 +1,14 @@
1
+ Copyright (C) 2013 Atalanta Systems Ltd
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
14
+
@@ -0,0 +1,92 @@
1
+ # chruby cookbook
2
+
3
+ Installs the Chruby utility for changing between Ruby versions.
4
+ Chruby is a vastly simplified rbenv - it's about 90 lines of code, and
5
+ very easy to understand.
6
+
7
+ # Requirements
8
+
9
+ - Depends on the `ark` cookbook and the `ruby-build` cookbook.
10
+ - Tested on:
11
+ - CentOS 6.3 and 6.4
12
+ - CentOS 5.8
13
+ - Ubuntu 12.04
14
+ - Ubuntu 10.04
15
+
16
+ # Usage
17
+
18
+ Include the `chruby` recipe in your run list. This will make the
19
+ chruby tool available to every shell, and make the embedded Ruby from
20
+ the Omnibus install available for use.
21
+
22
+ Chruby uses `ruby-build` to make Ruby versions available on the OS.
23
+
24
+ The version to build are defined in the node attribute `node['chruby']['rubies']`
25
+
26
+ This is a hash of Ruby versions, with a boolean flag, specifying whether the version should be installed.
27
+
28
+ For example, the cookbook default says:
29
+
30
+ default['chruby']['rubies'] = {'1.9.3-p392' => true}
31
+
32
+ If you want to disable this, set the value to false in a role or a wrapper cookbook. For a role:
33
+
34
+ ```
35
+ default_attributes(
36
+ "chruby" => {
37
+ "rubies" => {
38
+ "1.9.3-p392" => false,
39
+ "1.9.3-p429" => true
40
+ },
41
+ "default" => "1.9.3-p429"
42
+ }
43
+ )
44
+ ```
45
+
46
+ For a wrapper cookbook:
47
+
48
+ ```
49
+ node.set['chruby']['rubies'] = { "1.9.3-p392" => false, "1.9.3-p429" => true }
50
+ ```
51
+
52
+ These Ruby versions are installed using the LWRP provided by the `ruby_build` cookbook.
53
+
54
+ Ensure you set an explicit dependency on the `chruby` cookbook if you are using a wrapper cookbook.
55
+
56
+ # Attributes
57
+
58
+ - `node['chruby']['version']` - the version of Chruby to install. Default is 0.3.4.
59
+ - TODO: `node['chruby']['gpg_check']` - run the GPG check to verify the release was not tampered with.
60
+ - `node['chruby']['use_rvm_rubies']` - make Rubies installed using RVM available to chruby.
61
+ - `node['chruby']['use_rbenv_rubies']` - make Rubies installed using Rbenv available to chruby.
62
+ - `node['chruby']['auto_switch']` - enable automatic switching between Ruby versions per https://github.com/postmodern/chruby#auto-switching
63
+ - `node['chruby']['rubies']` - an hash of Rubies / Booleans values to install using the `ruby-build` LWRP, and make available to chruby.
64
+ - `node['chruby']['default']` - specify the default Ruby version for every shell.
65
+
66
+ # Recipes
67
+
68
+ ## Default
69
+
70
+ Installs the chruby utility, and makes it available to every shell. If Chef was installed with the Omnibus installer, make embedded Ruby available as an option for usage.
71
+
72
+ ## System
73
+
74
+ Builds and makes available the Ruby versions listed in the `node['chruby']['rubies']` attribute, using the `ruby-build` LWRP.
75
+
76
+ # Author and License
77
+
78
+ - Author: Stephen Nelson-Smith (LordCope) - Atalanta Systems Ltd (<cookbooks@atalanta-systems.com>)
79
+
80
+ Copyright 2013, Atalanta Systems Ltd
81
+
82
+ Licensed under the Apache License, Version 2.0 (the "License");
83
+ you may not use this file except in compliance with the License.
84
+ You may obtain a copy of the License at
85
+
86
+ http://www.apache.org/licenses/LICENSE-2.0
87
+
88
+ Unless required by applicable law or agreed to in writing, software
89
+ distributed under the License is distributed on an "AS IS" BASIS,
90
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
91
+ See the License for the specific language governing permissions and
92
+ limitations under the License.
@@ -0,0 +1,7 @@
1
+
2
+ begin
3
+ require 'kitchen/rake_tasks'
4
+ Kitchen::RakeTasks.new
5
+ rescue LoadError
6
+ puts ">>>>> Kitchen gem not loaded, omitting tasks" unless ENV['CI']
7
+ end
@@ -0,0 +1,6 @@
1
+ # encoding: utf-8
2
+
3
+ require 'bundler'
4
+ require 'bundler/setup'
5
+ require 'thor/foodcritic'
6
+ require 'berkshelf/thor'
@@ -0,0 +1,86 @@
1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+
4
+ Vagrant.configure("2") do |config|
5
+ # All Vagrant configuration is done here. The most common configuration
6
+ # options are documented and commented below. For a complete reference,
7
+ # please see the online documentation at vagrantup.com.
8
+
9
+ config.vm.hostname = "chruby-berkshelf"
10
+
11
+ # Every Vagrant virtual environment requires a box to build off of.
12
+ config.vm.box = "Berkshelf-CentOS-6.3-x86_64-minimal"
13
+
14
+ # The url from where the 'config.vm.box' box will be fetched if it
15
+ # doesn't already exist on the user's system.
16
+ config.vm.box_url = "https://dl.dropbox.com/u/31081437/Berkshelf-CentOS-6.3-x86_64-minimal.box"
17
+
18
+ # Assign this VM to a host-only network IP, allowing you to access it
19
+ # via the IP. Host-only networks can talk to the host machine as well as
20
+ # any other machines on the same network, but cannot be accessed (through this
21
+ # network interface) by any external networks.
22
+ config.vm.network :private_network, ip: "33.33.33.10"
23
+
24
+ # Create a public network, which generally matched to bridged network.
25
+ # Bridged networks make the machine appear as another physical device on
26
+ # your network.
27
+
28
+ # config.vm.network :public_network
29
+
30
+ # Create a forwarded port mapping which allows access to a specific port
31
+ # within the machine from a port on the host machine. In the example below,
32
+ # accessing "localhost:8080" will access port 80 on the guest machine.
33
+
34
+ # Share an additional folder to the guest VM. The first argument is
35
+ # the path on the host to the actual folder. The second argument is
36
+ # the path on the guest to mount the folder. And the optional third
37
+ # argument is a set of non-required options.
38
+ # config.vm.synced_folder "../data", "/vagrant_data"
39
+
40
+ # Provider-specific configuration so you can fine-tune various
41
+ # backing providers for Vagrant. These expose provider-specific options.
42
+ # Example for VirtualBox:
43
+ #
44
+ # config.vm.provider :virtualbox do |vb|
45
+ # # Don't boot with headless mode
46
+ # vb.gui = true
47
+ #
48
+ # # Use VBoxManage to customize the VM. For example to change memory:
49
+ # vb.customize ["modifyvm", :id, "--memory", "1024"]
50
+ # end
51
+ #
52
+ # View the documentation for the provider you're using for more
53
+ # information on available options.
54
+
55
+ config.ssh.max_tries = 40
56
+ config.ssh.timeout = 120
57
+
58
+ # The path to the Berksfile to use with Vagrant Berkshelf
59
+ # config.berkshelf.berksfile_path = "./Berksfile"
60
+
61
+ # Enabling the Berkshelf plugin. To enable this globally, add this configuration
62
+ # option to your ~/.vagrant.d/Vagrantfile file
63
+ config.berkshelf.enabled = true
64
+
65
+ # An array of symbols representing groups of cookbook described in the Vagrantfile
66
+ # to exclusively install and copy to Vagrant's shelf.
67
+ # config.berkshelf.only = []
68
+
69
+ # An array of symbols representing groups of cookbook described in the Vagrantfile
70
+ # to skip installing and copying to Vagrant's shelf.
71
+ # config.berkshelf.except = []
72
+
73
+ config.vm.provision :chef_solo do |chef|
74
+ chef.json = {
75
+ :mysql => {
76
+ :server_root_password => 'rootpass',
77
+ :server_debian_password => 'debpass',
78
+ :server_repl_password => 'replpass'
79
+ }
80
+ }
81
+
82
+ chef.run_list = [
83
+ "recipe[chruby::default]"
84
+ ]
85
+ end
86
+ end
@@ -0,0 +1,10 @@
1
+ default['chruby']['version'] = '0.3.4'
2
+ default['chruby']['gpg_check'] = false
3
+ default['chruby']['use_rvm_rubies'] = false
4
+ default['chruby']['use_rbenv_rubies'] = false
5
+ default['chruby']['auto_switch'] = true
6
+ default['chruby']['rubies'] = {'1.9.3-p392' => true}
7
+ default['chruby']['default'] = 'embedded'
8
+ default['chruby']['user_rubies'] = {}
9
+ default['chruby']['sh_dir'] = "/etc/profile.d"
10
+ default['chruby']['sh_name'] = 'chruby.sh'
@@ -0,0 +1,96 @@
1
+ # Put files/directories that should be ignored in this file when uploading
2
+ # or sharing to the community site.
3
+ # Lines that start with '# ' are comments.
4
+
5
+ # OS generated files #
6
+ ######################
7
+ .DS_Store
8
+ Icon?
9
+ nohup.out
10
+ ehthumbs.db
11
+ Thumbs.db
12
+
13
+ # SASS #
14
+ ########
15
+ .sass-cache
16
+
17
+ # EDITORS #
18
+ ###########
19
+ \#*
20
+ .#*
21
+ *~
22
+ *.sw[a-z]
23
+ *.bak
24
+ REVISION
25
+ TAGS*
26
+ tmtags
27
+ *_flymake.*
28
+ *_flymake
29
+ *.tmproj
30
+ .project
31
+ .settings
32
+ mkmf.log
33
+
34
+ ## COMPILED ##
35
+ ##############
36
+ a.out
37
+ *.o
38
+ *.pyc
39
+ *.so
40
+ *.com
41
+ *.class
42
+ *.dll
43
+ *.exe
44
+ */rdoc/
45
+
46
+ # Testing #
47
+ ###########
48
+ .watchr
49
+ .rspec
50
+ spec/*
51
+ spec/fixtures/*
52
+ test/*
53
+ features/*
54
+ Guardfile
55
+ Procfile
56
+
57
+ # SCM #
58
+ #######
59
+ .git
60
+ */.git
61
+ .gitignore
62
+ .gitmodules
63
+ .gitconfig
64
+ .gitattributes
65
+ .svn
66
+ */.bzr/*
67
+ */.hg/*
68
+ */.svn/*
69
+
70
+ # Berkshelf #
71
+ #############
72
+ Berksfile
73
+ Berksfile.lock
74
+ cookbooks/*
75
+ tmp
76
+
77
+ # Cookbooks #
78
+ #############
79
+ CONTRIBUTING
80
+ CHANGELOG*
81
+
82
+ # Strainer #
83
+ ############
84
+ Colanderfile
85
+ Strainerfile
86
+ .colander
87
+ .strainer
88
+
89
+ # Vagrant #
90
+ ###########
91
+ .vagrant
92
+ Vagrantfile
93
+
94
+ # Travis #
95
+ ##########
96
+ .travis.yml