capsulecd 1.0.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.
Files changed (104) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +2 -0
  3. data/.dockerignore +5 -0
  4. data/.gitignore +95 -0
  5. data/.rspec +3 -0
  6. data/.simplecov +9 -0
  7. data/Dockerfile +16 -0
  8. data/Dockerfile.chef +26 -0
  9. data/Dockerfile.javascript +7 -0
  10. data/Dockerfile.node +7 -0
  11. data/Dockerfile.python +7 -0
  12. data/Dockerfile.ruby +4 -0
  13. data/FEATURES.md +12 -0
  14. data/Gemfile +26 -0
  15. data/LICENSE.md +22 -0
  16. data/README.md +227 -0
  17. data/Rakefile +43 -0
  18. data/bin/capsulecd +4 -0
  19. data/capsulecd.gemspec +27 -0
  20. data/circle.yml +24 -0
  21. data/lib/capsulecd/base/common/git_utils.rb +90 -0
  22. data/lib/capsulecd/base/common/validation_utils.rb +22 -0
  23. data/lib/capsulecd/base/configuration.rb +151 -0
  24. data/lib/capsulecd/base/engine.rb +163 -0
  25. data/lib/capsulecd/base/runner/circleci.rb +37 -0
  26. data/lib/capsulecd/base/runner/default.rb +38 -0
  27. data/lib/capsulecd/base/source/github.rb +183 -0
  28. data/lib/capsulecd/base/transform_engine.rb +62 -0
  29. data/lib/capsulecd/chef/chef_engine.rb +172 -0
  30. data/lib/capsulecd/chef/chef_helper.rb +29 -0
  31. data/lib/capsulecd/cli.rb +64 -0
  32. data/lib/capsulecd/error.rb +51 -0
  33. data/lib/capsulecd/javascript/javascript_engine.rb +213 -0
  34. data/lib/capsulecd/node/node_engine.rb +141 -0
  35. data/lib/capsulecd/python/python_engine.rb +157 -0
  36. data/lib/capsulecd/ruby/ruby_engine.rb +191 -0
  37. data/lib/capsulecd/ruby/ruby_helper.rb +60 -0
  38. data/lib/capsulecd/version.rb +3 -0
  39. data/lib/capsulecd.rb +16 -0
  40. data/logo.svg +1 -0
  41. data/spec/fixtures/chef/cookbook_analogj_test/CHANGELOG.md +3 -0
  42. data/spec/fixtures/chef/cookbook_analogj_test/Gemfile +18 -0
  43. data/spec/fixtures/chef/cookbook_analogj_test/LICENSE +21 -0
  44. data/spec/fixtures/chef/cookbook_analogj_test/README.md +13 -0
  45. data/spec/fixtures/chef/cookbook_analogj_test/Rakefile +1 -0
  46. data/spec/fixtures/chef/cookbook_analogj_test/Thorfile +12 -0
  47. data/spec/fixtures/chef/cookbook_analogj_test/chefignore +94 -0
  48. data/spec/fixtures/chef/cookbook_analogj_test/metadata.rb +5 -0
  49. data/spec/fixtures/chef/cookbook_analogj_test/recipes/default.rb +6 -0
  50. data/spec/fixtures/incorrect_configuration.yml +4 -0
  51. data/spec/fixtures/javascript/javascript_analogj_test/LICENSE +21 -0
  52. data/spec/fixtures/javascript/javascript_analogj_test/README.md +2 -0
  53. data/spec/fixtures/javascript/javascript_analogj_test/package.json +19 -0
  54. data/spec/fixtures/node/npm_analogj_test/LICENSE +21 -0
  55. data/spec/fixtures/node/npm_analogj_test/README.md +2 -0
  56. data/spec/fixtures/node/npm_analogj_test/package.json +19 -0
  57. data/spec/fixtures/python/pip_analogj_test/LICENSE +21 -0
  58. data/spec/fixtures/python/pip_analogj_test/MANIFEST.in +1 -0
  59. data/spec/fixtures/python/pip_analogj_test/README.md +1 -0
  60. data/spec/fixtures/python/pip_analogj_test/VERSION +1 -0
  61. data/spec/fixtures/python/pip_analogj_test/setup.cfg +5 -0
  62. data/spec/fixtures/python/pip_analogj_test/setup.py +80 -0
  63. data/spec/fixtures/python/pip_analogj_test/tox.ini +14 -0
  64. data/spec/fixtures/ruby/gem_analogj_test/Gemfile +4 -0
  65. data/spec/fixtures/ruby/gem_analogj_test/LICENSE.txt +21 -0
  66. data/spec/fixtures/ruby/gem_analogj_test/README.md +41 -0
  67. data/spec/fixtures/ruby/gem_analogj_test/Rakefile +6 -0
  68. data/spec/fixtures/ruby/gem_analogj_test/bin/console +14 -0
  69. data/spec/fixtures/ruby/gem_analogj_test/bin/setup +8 -0
  70. data/spec/fixtures/ruby/gem_analogj_test/gem_analogj_test.gemspec +25 -0
  71. data/spec/fixtures/ruby/gem_analogj_test/lib/gem_analogj_test/version.rb +3 -0
  72. data/spec/fixtures/ruby/gem_analogj_test/lib/gem_analogj_test.rb +5 -0
  73. data/spec/fixtures/ruby/gem_analogj_test/spec/gem_analogj_test_spec.rb +7 -0
  74. data/spec/fixtures/ruby/gem_analogj_test/spec/spec_helper.rb +2 -0
  75. data/spec/fixtures/ruby/gem_analogj_test-0.1.4.gem +0 -0
  76. data/spec/fixtures/sample_chef_configuration.yml +8 -0
  77. data/spec/fixtures/sample_configuration.yml +7 -0
  78. data/spec/fixtures/sample_global_configuration.yml +23 -0
  79. data/spec/fixtures/sample_node_configuration.yml +7 -0
  80. data/spec/fixtures/sample_python_configuration.yml +8 -0
  81. data/spec/fixtures/sample_repo_configuration.yml +22 -0
  82. data/spec/fixtures/sample_ruby_configuration.yml +5 -0
  83. data/spec/fixtures/vcr_cassettes/chef_build_step.yml +636 -0
  84. data/spec/fixtures/vcr_cassettes/gem_build_step.yml +653 -0
  85. data/spec/fixtures/vcr_cassettes/gem_build_step_without_version_rb.yml +653 -0
  86. data/spec/fixtures/vcr_cassettes/integration_chef.yml +1399 -0
  87. data/spec/fixtures/vcr_cassettes/integration_node.yml +1388 -0
  88. data/spec/fixtures/vcr_cassettes/integration_python.yml +1388 -0
  89. data/spec/fixtures/vcr_cassettes/integration_ruby.yml +1377 -0
  90. data/spec/fixtures/vcr_cassettes/node_build_step.yml +647 -0
  91. data/spec/fixtures/vcr_cassettes/pip_build_step.yml +653 -0
  92. data/spec/lib/capsulecd/base/configuration_spec.rb +75 -0
  93. data/spec/lib/capsulecd/base/engine_spec.rb +51 -0
  94. data/spec/lib/capsulecd/base/source/github_spec.rb +253 -0
  95. data/spec/lib/capsulecd/base/transform_engine_spec.rb +55 -0
  96. data/spec/lib/capsulecd/chef/chef_engine_spec.rb +114 -0
  97. data/spec/lib/capsulecd/cli_spec.rb +57 -0
  98. data/spec/lib/capsulecd/node/node_engine_spec.rb +113 -0
  99. data/spec/lib/capsulecd/python/python_engine_spec.rb +118 -0
  100. data/spec/lib/capsulecd/ruby/ruby_engine_spec.rb +128 -0
  101. data/spec/spec_helper.rb +105 -0
  102. data/spec/support/file_system.rb +21 -0
  103. data/spec/support/package_types.rb +11 -0
  104. metadata +281 -0
@@ -0,0 +1,191 @@
1
+ require 'semverly'
2
+ require 'open3'
3
+ require 'bundler'
4
+ require_relative '../base/engine'
5
+ require_relative 'ruby_helper'
6
+
7
+ module CapsuleCD
8
+ module Ruby
9
+ class RubyEngine < Engine
10
+ def build_step
11
+ super
12
+ gemspec_path = CapsuleCD::Ruby::RubyHelper.get_gemspec_path(@source_git_local_path)
13
+
14
+ # check for/create required VERSION file
15
+ gemspec_data = CapsuleCD::Ruby::RubyHelper.load_gemspec_data(gemspec_path)
16
+
17
+ if !gemspec_data || !File.exist?(CapsuleCD::Ruby::RubyHelper.version_filepath(@source_git_local_path, gemspec_data.name))
18
+ fail CapsuleCD::Error::BuildPackageInvalid, 'version.rb file is required to process Ruby gem'
19
+ end
20
+
21
+ # bump up the version here.
22
+ # since there's no standardized way to bump up the version in the *.gemspec file, we're going to assume that the version
23
+ # is specified in a version file in the lib/<gem_name>/ directory, similar to how the bundler gem does it.
24
+ # ie. bundle gem <gem_name> will create a file: my_gem/lib/my_gem/version.rb with the following contents
25
+ # module MyGem
26
+ # VERSION = "0.1.0"
27
+ # end
28
+ #
29
+ # Jeweler and Hoe both do something similar.
30
+ # http://yehudakatz.com/2010/04/02/using-gemspecs-as-intended/
31
+ # http://timelessrepo.com/making-ruby-gems
32
+ # http://guides.rubygems.org/make-your-own-gem/
33
+
34
+ version_str = CapsuleCD::Ruby::RubyHelper.read_version_file(@source_git_local_path, gemspec_data.name)
35
+ next_version = bump_version(SemVer.parse(gemspec_data.version.to_s))
36
+
37
+ new_version_str = version_str.gsub(/(VERSION\s*=\s*['"])[0-9\.]+(['"])/, "\\1#{next_version}\\2")
38
+ CapsuleCD::Ruby::RubyHelper.write_version_file(@source_git_local_path, gemspec_data.name, new_version_str)
39
+
40
+ # check for/create any required missing folders/files
41
+ unless File.exist?(@source_git_local_path + '/Gemfile')
42
+ File.open(@source_git_local_path + '/Gemfile', 'w') { |file|
43
+ file.puts("source 'https://rubygems.org'")
44
+ file.puts('gemspec')
45
+ }
46
+ end
47
+ unless File.exist?(@source_git_local_path + '/Rakefile')
48
+ File.open(@source_git_local_path + '/Rakefile', 'w') { |file| file.write('task :default => :spec') }
49
+ end
50
+ unless File.exist?(@source_git_local_path + '/spec')
51
+ FileUtils.mkdir(@source_git_local_path + '/spec')
52
+ end
53
+ unless File.exist?(@source_git_local_path + '/.gitignore')
54
+ CapsuleCD::GitUtils.create_gitignore(@source_git_local_path, ['Ruby'])
55
+ end
56
+
57
+ # package the gem, make sure it builds correctly
58
+ Open3.popen3('gem build '+ File.basename(gemspec_path), chdir: @source_git_local_path) do |_stdin, stdout, stderr, external|
59
+ { stdout: stdout, stderr: stderr }. each do |name, stream_buffer|
60
+ Thread.new do
61
+ until (line = stream_buffer.gets).nil?
62
+ puts "#{name} -> #{line}"
63
+ end
64
+ end
65
+ end
66
+ # wait for process
67
+ external.join
68
+ unless external.value.success?
69
+ fail CapsuleCD::Error::BuildPackageFailed, 'gem build failed. Check gemspec file and dependencies'
70
+ end
71
+ end
72
+ end
73
+
74
+ def test_step
75
+ super
76
+
77
+ gems = Dir.glob(@source_git_local_path + '/*.gem')
78
+ if gems.empty?
79
+ fail CapsuleCD::Error::TestDependenciesError, 'Ruby gem file could not be found'
80
+ end
81
+ gem_path = gems.first
82
+
83
+ # lets install the gem, and any dependencies
84
+ # http://guides.rubygems.org/make-your-own-gem/
85
+ Bundler.with_clean_env do
86
+ Open3.popen3('gem install ./' + File.basename(gem_path) + ' --ignore-dependencies', chdir: @source_git_local_path) do |_stdin, stdout, stderr, external|
87
+ { stdout: stdout, stderr: stderr }. each do |name, stream_buffer|
88
+ Thread.new do
89
+ until (line = stream_buffer.gets).nil?
90
+ puts "#{name} -> #{line}"
91
+ end
92
+ end
93
+ end
94
+ # wait for process
95
+ external.join
96
+ unless external.value.success?
97
+ fail CapsuleCD::Error::TestDependenciesError, 'gem install failed. Check gemspec and gem dependencies'
98
+ end
99
+ end
100
+
101
+ Open3.popen3('bundle install', chdir: @source_git_local_path) do |_stdin, stdout, stderr, external|
102
+ { stdout: stdout, stderr: stderr }. each do |name, stream_buffer|
103
+ Thread.new do
104
+ until (line = stream_buffer.gets).nil?
105
+ puts "#{name} -> #{line}"
106
+ end
107
+ end
108
+ end
109
+ # wait for process
110
+ external.join
111
+ unless external.value.success?
112
+ fail CapsuleCD::Error::TestDependenciesError, 'bundle install failed. Check Gemfile'
113
+ end
114
+ end
115
+
116
+ # run test command
117
+ test_cmd = @config.engine_cmd_test || 'rake spec'
118
+ Open3.popen3(test_cmd, chdir: @source_git_local_path) do |_stdin, stdout, stderr, external|
119
+ { stdout: stdout, stderr: stderr }. each do |name, stream_buffer|
120
+ Thread.new do
121
+ until (line = stream_buffer.gets).nil?
122
+ puts "#{name} -> #{line}"
123
+ end
124
+ end
125
+ end
126
+ # wait for process
127
+ external.join
128
+ unless external.value.success?
129
+ fail CapsuleCD::Error::TestRunnerError, test_cmd + ' failed. Check log for exact error'
130
+ end
131
+ end unless @config.engine_disable_test
132
+ end
133
+ end
134
+
135
+ # run npm publish
136
+ def package_step
137
+ super
138
+
139
+ # commit changes to the cookbook. (test run occurs before this, and it should clean up any instrumentation files, created,
140
+ # as they will be included in the commmit and any release artifacts)
141
+ gemspec_data = CapsuleCD::Ruby::RubyHelper.get_gemspec_data(@source_git_local_path)
142
+ next_version = SemVer.parse(gemspec_data.version.to_s)
143
+ CapsuleCD::GitUtils.commit(@source_git_local_path, "(v#{next_version}) Automated packaging of release by CapsuleCD")
144
+ @source_release_commit = CapsuleCD::GitUtils.tag(@source_git_local_path, "v#{next_version}")
145
+ end
146
+
147
+ # this step should push the release to the package repository (ie. npm, chef supermarket, rubygems)
148
+ def release_step
149
+ super
150
+
151
+ unless @config.rubygems_api_key
152
+ fail CapsuleCD::Error::ReleaseCredentialsMissing, 'cannot deploy package to rubygems, credentials missing'
153
+ return
154
+ end
155
+
156
+ # write the config file.
157
+ rubygems_cred_path = File.expand_path('~/.gem')
158
+
159
+ FileUtils.mkdir_p(rubygems_cred_path)
160
+ File.open(rubygems_cred_path + '/credentials', 'w+', 0600) do |file|
161
+ file.write(<<-EOT.gsub(/^\s+/, '')
162
+ ---
163
+ :rubygems_api_key: #{@config.rubygems_api_key}
164
+ EOT
165
+ )
166
+ end
167
+
168
+ # run gem push *.gem
169
+ gems = Dir.glob(@source_git_local_path + '/*.gem')
170
+ if gems.empty?
171
+ fail CapsuleCD::Error::TestDependenciesError, 'Ruby gem file could not be found'
172
+ end
173
+ gem_path = gems.first
174
+ Open3.popen3('gem push ' + File.basename(gem_path), chdir: @source_git_local_path) do |_stdin, stdout, stderr, external|
175
+ { stdout: stdout, stderr: stderr }. each do |name, stream_buffer|
176
+ Thread.new do
177
+ until (line = stream_buffer.gets).nil?
178
+ puts "#{name} -> #{line}"
179
+ end
180
+ end
181
+ end
182
+ # wait for process
183
+ external.join
184
+ unless external.value.success?
185
+ fail CapsuleCD::Error::ReleasePackageError, 'Pushing gem to RubyGems.org using `gem push` failed. Check log for exact error'
186
+ end
187
+ end
188
+ end
189
+ end
190
+ end
191
+ end
@@ -0,0 +1,60 @@
1
+ require 'rubygems'
2
+ require 'thread'
3
+ module CapsuleCD
4
+ module Ruby
5
+ class RubyHelper
6
+ def self.version_filepath(repo_path, gem_name, version_filename = 'version.rb')
7
+ "#{repo_path}/lib/#{gem_name}/#{version_filename}"
8
+ end
9
+
10
+ def self.read_version_file(repo_path, gem_name, version_filename = 'version.rb')
11
+ File.read(self.version_filepath(repo_path, gem_name, version_filename))
12
+ end
13
+
14
+ def self.write_version_file(repo_path, gem_name, metadata_str, version_filename = 'version.rb')
15
+ File.open(self.version_filepath(repo_path, gem_name, version_filename), 'w') { |file| file.write(metadata_str) }
16
+ end
17
+
18
+ def self.get_gemspec_path(repo_path)
19
+ gemspecs = Dir.glob(repo_path + '/*.gemspec')
20
+ if gemspecs.empty?
21
+ fail CapsuleCD::Error::BuildPackageInvalid, '*.gemspec file is required to process Ruby gem'
22
+ end
23
+ gemspecs.first
24
+ end
25
+
26
+ def self.get_gemspec_data(repo_path)
27
+ self.load_gemspec_data(self.get_gemspec_path(repo_path))
28
+ end
29
+
30
+ # since the Gem::Specification class is basically eval'ing the gemspec file, and the gemspec file is doing a require
31
+ # to load the version.rb file, the version.rb file is cached in memory. We're going to try to get around that issue
32
+ # by parsing the gemspec file in a forked process.
33
+ # https://stackoverflow.com/questions/1076257/returning-data-from-forked-processes
34
+ def self.execute_in_child
35
+ read, write = IO.pipe
36
+
37
+ pid = fork do
38
+ read.close
39
+ result = yield
40
+ Marshal.dump(result, write)
41
+ exit!(0) # skips exit handlers.
42
+ end
43
+
44
+ write.close
45
+ result = read.read
46
+ Process.wait(pid)
47
+ raise "child failed" if result.empty?
48
+ Marshal.load(result)
49
+ end
50
+
51
+ def self.load_gemspec_data(gemspec_path)
52
+ return self.execute_in_child do
53
+ Gem::Specification::load(gemspec_path)
54
+ end
55
+ end
56
+
57
+
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,3 @@
1
+ module CapsuleCD
2
+ VERSION = '1.0.1'
3
+ end
data/lib/capsulecd.rb ADDED
@@ -0,0 +1,16 @@
1
+ module CapsuleCD
2
+ require 'capsulecd/base/engine'
3
+ require 'capsulecd/base/configuration'
4
+ require 'capsulecd/base/transform_engine'
5
+
6
+ require 'capsulecd/base/common/git_utils'
7
+ require 'capsulecd/base/common/validation_utils'
8
+
9
+ require 'capsulecd/base/runner/default'
10
+ require 'capsulecd/base/runner/circleci'
11
+
12
+ require 'capsulecd/base/source/github'
13
+
14
+ require 'capsulecd/version'
15
+ require 'capsulecd/error'
16
+ end
data/logo.svg ADDED
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" viewBox="0 0 100 100" enable-background="new 0 0 100 100" xml:space="preserve"><path fill="#000000" d="M62.748,19.414c-4.016,0-7.724,1.672-11.021,4.969l-1.734,1.734l-1.38-1.38 c-0.508-0.509-5.159-4.97-11.68-4.97c-4.015,0-7.724,1.672-11.022,4.97l-1.174,1.175c-4.562,4.562-8.327,14.373,0,22.7l1.38,1.38 l-1.749,1.749c-4.562,4.562-8.328,14.374,0.001,22.703l1.173,1.17c0.509,0.509,5.159,4.97,11.679,4.971c0,0,0,0.001,0,0.001 c4.016,0,7.723-1.673,11.021-4.971l1.748-1.748l1.396,1.396c0.509,0.509,5.158,4.97,11.679,4.97c4.016,0,7.725-1.672,11.022-4.971 l1.175-1.174c4.561-4.563,8.326-14.374,0-22.7l-1.396-1.396l1.733-1.733c0.287-0.287,2.843-2.918,4.175-6.916 c1.872-5.615,0.39-11.222-4.174-15.786l-1.175-1.174C73.918,23.875,69.269,19.414,62.748,19.414z M29.672,43.677 c-6.027-6.026-1.045-11.758,0-12.83l1.173-1.174c1.969-1.969,3.96-2.926,6.087-2.926c3.698,0,6.729,2.912,6.744,2.926l1.379,1.38 L31.052,45.058L29.672,43.677z M37.222,73.605c-3.7,0-6.731-2.912-6.746-2.927l-1.172-1.171c-6.029-6.028-1.045-11.76,0-12.833 l11.258-11.258c0.123,0.183,0.262,0.356,0.422,0.518L54.049,59c0.161,0.16,0.336,0.299,0.518,0.422L43.309,70.681 C41.339,72.648,39.349,73.605,37.222,73.605z M70.327,56.323c6.028,6.027,1.045,11.758,0,12.83l-1.173,1.174 c-1.969,1.969-3.96,2.926-6.088,2.926c-3.698,0-6.729-2.911-6.744-2.926l-1.396-1.396l14.005-14.004L70.327,56.323z M70.666,43.324 L59.407,54.582c-0.124-0.183-0.262-0.356-0.423-0.517L45.919,40.999c-0.161-0.16-0.335-0.299-0.518-0.422l11.26-11.259 c1.969-1.969,3.959-2.925,6.086-2.925c3.699,0,6.73,2.911,6.744,2.926l1.174,1.173C76.693,36.521,71.711,42.251,70.666,43.324z"></path></svg>
@@ -0,0 +1,3 @@
1
+ # 0.1.0
2
+
3
+ Initial release of test_cookbook
@@ -0,0 +1,18 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'berkshelf'
4
+
5
+ # Uncomment these lines if you want to live on the Edge:
6
+ #
7
+ # group :development do
8
+ # gem "berkshelf", github: "berkshelf/berkshelf"
9
+ # gem "vagrant", github: "mitchellh/vagrant", tag: "v1.6.3"
10
+ # end
11
+ #
12
+ # group :plugins do
13
+ # gem "vagrant-berkshelf", github: "berkshelf/vagrant-berkshelf"
14
+ # gem "vagrant-omnibus", github: "schisamo/vagrant-omnibus"
15
+ # end
16
+
17
+ gem "test-kitchen"
18
+ gem "kitchen-vagrant"
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Jason Kulatunga
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,13 @@
1
+
2
+ test contenst
3
+ sd
4
+ f
5
+ sd
6
+ test PR 1sd
7
+ f
8
+ sdf
9
+ s
10
+ ds
11
+ f
12
+
13
+ touch
@@ -0,0 +1 @@
1
+ task :test
@@ -0,0 +1,12 @@
1
+ # encoding: utf-8
2
+
3
+ require 'bundler'
4
+ require 'bundler/setup'
5
+ require 'berkshelf/thor'
6
+
7
+ begin
8
+ require "kitchen/thor_tasks"
9
+ Kitchen::ThorTasks.new
10
+ rescue LoadError
11
+ puts ">>>>> Kitchen gem not loaded, omitting tasks" unless ENV["CI"]
12
+ end
@@ -0,0 +1,94 @@
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
+ cookbooks/*
73
+ tmp
74
+
75
+ # Cookbooks #
76
+ #############
77
+ CONTRIBUTING
78
+ CHANGELOG*
79
+
80
+ # Strainer #
81
+ ############
82
+ Colanderfile
83
+ Strainerfile
84
+ .colander
85
+ .strainer
86
+
87
+ # Vagrant #
88
+ ###########
89
+ .vagrant
90
+ Vagrantfile
91
+
92
+ # Travis #
93
+ ##########
94
+ .travis.yml
@@ -0,0 +1,5 @@
1
+ name 'cookbook_analogj_test'
2
+ license 'All rights reserved'
3
+ description 'Installs/Configures cookbook_analogj_test'
4
+ long_description 'Installs/Configures cookbook_analogj_test'
5
+ version '0.1.10'
@@ -0,0 +1,6 @@
1
+ #
2
+ # Cookbook Name:: test_cookbook
3
+ # Recipe:: default
4
+ # #
5
+ # All rights reserved - Do Not Redistribute
6
+ #
@@ -0,0 +1,4 @@
1
+ ---
2
+ npm_auth_token: sample_auth_token
3
+ source_github_access_token: sample_test_token
4
+ source: 'invalid'
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Jason Kulatunga
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,2 @@
1
+ # test_npm
2
+ Test npm package for use with capsulecd.
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "javascript_analogj_test",
3
+ "version": "1.0.0",
4
+ "description": "test javascript package for capsulecd",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "test": "echo \"Error: no test specified\""
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/AnalogJ/javascript_analogj_test.git"
12
+ },
13
+ "author": "",
14
+ "license": "MIT",
15
+ "bugs": {
16
+ "url": "https://github.com/AnalogJ/javascript_analogj_test/issues"
17
+ },
18
+ "homepage": "https://github.com/AnalogJ/javascript_analogj_test#readme"
19
+ }
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Jason Kulatunga
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,2 @@
1
+ # test_npm
2
+ Test npm package for use with capsulecd.
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "npm_analogj_test",
3
+ "version": "1.0.8",
4
+ "description": "test javascript package for capsulecd",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "test": "echo \"Error: no test specified\""
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/AnalogJ/npm_analogj_test.git"
12
+ },
13
+ "author": "",
14
+ "license": "MIT",
15
+ "bugs": {
16
+ "url": "https://github.com/AnalogJ/npm_analogj_test/issues"
17
+ },
18
+ "homepage": "https://github.com/AnalogJ/npm_analogj_test#readme"
19
+ }
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Jason Kulatunga
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ include README.md LICENSE requirements.txt VERSION
@@ -0,0 +1 @@
1
+ 1.0.6
@@ -0,0 +1,5 @@
1
+ [bdist_wheel]
2
+ # This flag says that the code is written to work on both Python 2 and Python
3
+ # 3. If at all possible, it is good practice to do this. If you cannot, you
4
+ # will need to generate wheels for each Python version that you support.
5
+ universal=1