cookbook_creator 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/cookbook_creator.gemspec +2 -2
  3. data/lib/cookbook_creator/skeletons/code_generator/files/default/gitignore +2 -0
  4. data/lib/cookbook_creator/skeletons/code_generator/metadata.rb +4 -4
  5. data/lib/cookbook_creator/skeletons/code_generator/recipes/cookbook.rb +12 -3
  6. data/lib/cookbook_creator/skeletons/code_generator/templates/default/Berksfile.erb +3 -0
  7. metadata +2 -79
  8. data/lib/cookbook_creator/.config_loader.rb.swp +0 -0
  9. data/lib/cookbook_creator/skeletons/code_generator/files/default/Berksfile +0 -3
  10. data/lib/cookbook_creator/skeletons/code_generator/files/default/cookbook_readmes/README-policy.md +0 -9
  11. data/lib/cookbook_creator/skeletons/code_generator/files/default/repo/README.md +0 -28
  12. data/lib/cookbook_creator/skeletons/code_generator/files/default/repo/cookbooks/example/README.md +0 -27
  13. data/lib/cookbook_creator/skeletons/code_generator/files/default/repo/cookbooks/example/attributes/default.rb +0 -7
  14. data/lib/cookbook_creator/skeletons/code_generator/files/default/repo/cookbooks/example/metadata.rb +0 -3
  15. data/lib/cookbook_creator/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb +0 -8
  16. data/lib/cookbook_creator/skeletons/code_generator/files/default/repo/data_bags/README.md +0 -58
  17. data/lib/cookbook_creator/skeletons/code_generator/files/default/repo/data_bags/example/example_item.json +0 -4
  18. data/lib/cookbook_creator/skeletons/code_generator/files/default/repo/dot-chef-repo.txt +0 -6
  19. data/lib/cookbook_creator/skeletons/code_generator/files/default/repo/environments/README.md +0 -9
  20. data/lib/cookbook_creator/skeletons/code_generator/files/default/repo/environments/example.json +0 -13
  21. data/lib/cookbook_creator/skeletons/code_generator/files/default/repo/policies/README.md +0 -24
  22. data/lib/cookbook_creator/skeletons/code_generator/files/default/repo/roles/README.md +0 -9
  23. data/lib/cookbook_creator/skeletons/code_generator/files/default/repo/roles/example.json +0 -13
  24. data/lib/cookbook_creator/skeletons/code_generator/files/default/spec_helper_policyfile.rb +0 -2
  25. data/lib/cookbook_creator/skeletons/code_generator/recipes/app.rb +0 -97
  26. data/lib/cookbook_creator/skeletons/code_generator/recipes/attribute.rb +0 -12
  27. data/lib/cookbook_creator/skeletons/code_generator/recipes/cookbook_file.rb +0 -24
  28. data/lib/cookbook_creator/skeletons/code_generator/recipes/lwrp.rb +0 -23
  29. data/lib/cookbook_creator/skeletons/code_generator/recipes/policyfile.rb +0 -8
  30. data/lib/cookbook_creator/skeletons/code_generator/recipes/recipe.rb +0 -27
  31. data/lib/cookbook_creator/skeletons/code_generator/recipes/repo.rb +0 -67
  32. data/lib/cookbook_creator/skeletons/code_generator/recipes/template.rb +0 -32
  33. data/lib/cookbook_creator/skeletons/code_generator/templates/default/cookbook_file.erb +0 -1
  34. data/lib/cookbook_creator/skeletons/code_generator/templates/default/repo/gitignore.erb +0 -11
  35. data/lib/skeletons/code_generator/files/default/Berksfile +0 -3
  36. data/lib/skeletons/code_generator/files/default/chefignore +0 -100
  37. data/lib/skeletons/code_generator/files/default/cookbook_readmes/README-policy.md +0 -9
  38. data/lib/skeletons/code_generator/files/default/cookbook_readmes/README.md +0 -54
  39. data/lib/skeletons/code_generator/files/default/gitignore +0 -16
  40. data/lib/skeletons/code_generator/files/default/repo/README.md +0 -28
  41. data/lib/skeletons/code_generator/files/default/repo/cookbooks/example/README.md +0 -27
  42. data/lib/skeletons/code_generator/files/default/repo/cookbooks/example/attributes/default.rb +0 -7
  43. data/lib/skeletons/code_generator/files/default/repo/cookbooks/example/metadata.rb +0 -3
  44. data/lib/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb +0 -8
  45. data/lib/skeletons/code_generator/files/default/repo/data_bags/README.md +0 -58
  46. data/lib/skeletons/code_generator/files/default/repo/data_bags/example/example_item.json +0 -4
  47. data/lib/skeletons/code_generator/files/default/repo/dot-chef-repo.txt +0 -6
  48. data/lib/skeletons/code_generator/files/default/repo/environments/README.md +0 -9
  49. data/lib/skeletons/code_generator/files/default/repo/environments/example.json +0 -13
  50. data/lib/skeletons/code_generator/files/default/repo/policies/README.md +0 -24
  51. data/lib/skeletons/code_generator/files/default/repo/roles/README.md +0 -9
  52. data/lib/skeletons/code_generator/files/default/repo/roles/example.json +0 -13
  53. data/lib/skeletons/code_generator/files/default/serverspec_spec_helper.rb +0 -8
  54. data/lib/skeletons/code_generator/files/default/spec_helper.rb +0 -2
  55. data/lib/skeletons/code_generator/files/default/spec_helper_policyfile.rb +0 -2
  56. data/lib/skeletons/code_generator/metadata.rb +0 -8
  57. data/lib/skeletons/code_generator/recipes/app.rb +0 -97
  58. data/lib/skeletons/code_generator/recipes/attribute.rb +0 -12
  59. data/lib/skeletons/code_generator/recipes/cookbook.rb +0 -94
  60. data/lib/skeletons/code_generator/recipes/cookbook_file.rb +0 -24
  61. data/lib/skeletons/code_generator/recipes/lwrp.rb +0 -23
  62. data/lib/skeletons/code_generator/recipes/policyfile.rb +0 -8
  63. data/lib/skeletons/code_generator/recipes/recipe.rb +0 -27
  64. data/lib/skeletons/code_generator/recipes/repo.rb +0 -67
  65. data/lib/skeletons/code_generator/recipes/template.rb +0 -32
  66. data/lib/skeletons/code_generator/templates/default/LICENSE.all_rights.erb +0 -3
  67. data/lib/skeletons/code_generator/templates/default/LICENSE.apache2.erb +0 -201
  68. data/lib/skeletons/code_generator/templates/default/LICENSE.gplv2.erb +0 -339
  69. data/lib/skeletons/code_generator/templates/default/LICENSE.gplv3.erb +0 -674
  70. data/lib/skeletons/code_generator/templates/default/LICENSE.mit.erb +0 -21
  71. data/lib/skeletons/code_generator/templates/default/Policyfile.rb.erb +0 -25
  72. data/lib/skeletons/code_generator/templates/default/README.md.erb +0 -4
  73. data/lib/skeletons/code_generator/templates/default/attribute.rb.erb +0 -0
  74. data/lib/skeletons/code_generator/templates/default/cookbook_file.erb +0 -0
  75. data/lib/skeletons/code_generator/templates/default/kitchen.yml.erb +0 -21
  76. data/lib/skeletons/code_generator/templates/default/kitchen_policyfile.yml.erb +0 -32
  77. data/lib/skeletons/code_generator/templates/default/metadata.rb.erb +0 -7
  78. data/lib/skeletons/code_generator/templates/default/provider.rb.erb +0 -0
  79. data/lib/skeletons/code_generator/templates/default/recipe.rb.erb +0 -5
  80. data/lib/skeletons/code_generator/templates/default/recipe_spec.rb.erb +0 -20
  81. data/lib/skeletons/code_generator/templates/default/repo/gitignore.erb +0 -11
  82. data/lib/skeletons/code_generator/templates/default/resource.rb.erb +0 -0
  83. data/lib/skeletons/code_generator/templates/default/serverspec_default_spec.rb.erb +0 -9
  84. data/lib/skeletons/code_generator/templates/default/template.erb +0 -0
@@ -1,97 +0,0 @@
1
-
2
-
3
- context = ChefDK::Generator.context
4
- app_dir = File.join(context.app_root, context.app_name)
5
- cookbooks_dir = context.cookbook_root
6
- cookbook_dir = File.join(cookbooks_dir, context.cookbook_name)
7
-
8
- # app root dir
9
- directory app_dir
10
-
11
- # Top level files
12
-
13
- # TK
14
- template "#{app_dir}/.kitchen.yml" do
15
- source 'kitchen.yml.erb'
16
- helpers(ChefDK::Generator::TemplateHelper)
17
- end
18
-
19
- directory "#{app_dir}/test/integration/default/serverspec" do
20
- recursive true
21
- end
22
-
23
- directory "#{app_dir}/test/integration/helpers/serverspec" do
24
- recursive true
25
- end
26
-
27
- cookbook_file "#{app_dir}/test/integration/helpers/serverspec/spec_helper.rb" do
28
- source 'serverspec_spec_helper.rb'
29
- action :create_if_missing
30
- end
31
-
32
- template "#{app_dir}/test/integration/default/serverspec/default_spec.rb" do
33
- source 'serverspec_default_spec.rb.erb'
34
- helpers(ChefDK::Generator::TemplateHelper)
35
- action :create_if_missing
36
- end
37
-
38
- # README
39
- template "#{app_dir}/README.md" do
40
- helpers(ChefDK::Generator::TemplateHelper)
41
- end
42
-
43
- # Generated Cookbook:
44
-
45
- # cookbook collection dir
46
- directory cookbooks_dir
47
-
48
- # cookbook collection dir
49
- directory cookbook_dir
50
-
51
- # metadata.rb
52
- template "#{cookbook_dir}/metadata.rb" do
53
- helpers(ChefDK::Generator::TemplateHelper)
54
- end
55
-
56
- # chefignore
57
- cookbook_file "#{cookbook_dir}/chefignore"
58
-
59
- # Berks
60
- cookbook_file "#{cookbook_dir}/Berksfile"
61
-
62
- # Recipes
63
-
64
- directory "#{cookbook_dir}/recipes"
65
-
66
- template "#{cookbook_dir}/recipes/default.rb" do
67
- source "recipe.rb.erb"
68
- helpers(ChefDK::Generator::TemplateHelper)
69
- end
70
-
71
- # Chefspec
72
- directory "#{cookbook_dir}/spec/unit/recipes" do
73
- recursive true
74
- end
75
-
76
- cookbook_file "#{cookbook_dir}/spec/spec_helper.rb" do
77
- action :create_if_missing
78
- end
79
-
80
- template "#{cookbook_dir}/spec/unit/recipes/default_spec.rb" do
81
- source "recipe_spec.rb.erb"
82
- helpers(ChefDK::Generator::TemplateHelper)
83
- action :create_if_missing
84
- end
85
-
86
- # git
87
- if context.have_git
88
- if !context.skip_git_init
89
- execute("initialize-git") do
90
- command("git init .")
91
- cwd app_dir
92
- end
93
- end
94
- cookbook_file "#{app_dir}/.gitignore" do
95
- source "gitignore"
96
- end
97
- end
@@ -1,12 +0,0 @@
1
-
2
- context = ChefDK::Generator.context
3
- cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
4
- attribute_dir = File.join(cookbook_dir, "attributes")
5
- attribute_path = File.join(cookbook_dir, "attributes", "#{context.new_file_basename}.rb")
6
-
7
- directory attribute_dir
8
-
9
- template attribute_path do
10
- source "attribute.rb.erb"
11
- helpers(ChefDK::Generator::TemplateHelper)
12
- end
@@ -1,94 +0,0 @@
1
- context = CookbookCreator::Generator.context
2
- cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
3
- p context.cookbook_root
4
- p context.cookbook_name
5
- exit
6
-
7
- # cookbook root dir
8
- directory cookbook_dir
9
-
10
- # metadata.rb
11
- template "#{cookbook_dir}/metadata.rb" do
12
- helpers(CookbookCreator::Generator::TemplateHelper)
13
- action :create_if_missing
14
- end
15
-
16
- # README
17
- template "#{cookbook_dir}/README.md" do
18
- helpers(CookbookCreator::Generator::TemplateHelper)
19
- action :create_if_missing
20
- end
21
-
22
- # chefignore
23
- cookbook_file "#{cookbook_dir}/chefignore"
24
-
25
-
26
- # Berks
27
- cookbook_file "#{cookbook_dir}/Berksfile" do
28
- action :create_if_missing
29
- end
30
-
31
-
32
-
33
- # CookbookCreator & Serverspec
34
- template "#{cookbook_dir}/.kitchen.yml" do
35
-
36
- source 'kitchen.yml.erb'
37
- helpers(CookbookCreator::Generator::TemplateHelper)
38
- action :create_if_missing
39
- end
40
-
41
- directory "#{cookbook_dir}/test/integration/default/serverspec" do
42
- recursive true
43
- end
44
-
45
- directory "#{cookbook_dir}/test/integration/helpers/serverspec" do
46
- recursive true
47
- end
48
-
49
- cookbook_file "#{cookbook_dir}/test/integration/helpers/serverspec/spec_helper.rb" do
50
- source 'serverspec_spec_helper.rb'
51
- action :create_if_missing
52
- end
53
-
54
- template "#{cookbook_dir}/test/integration/default/serverspec/default_spec.rb" do
55
- source 'serverspec_default_spec.rb.erb'
56
- helpers(CookbookCreator::Generator::TemplateHelper)
57
- action :create_if_missing
58
- end
59
-
60
- # Chefspec
61
- directory "#{cookbook_dir}/spec/unit/recipes" do
62
- recursive true
63
- end
64
-
65
- cookbook_file "#{cookbook_dir}/spec/spec_helper.rb" do
66
-
67
- source "spec_helper.rb"
68
-
69
- action :create_if_missing
70
- end
71
-
72
- template "#{cookbook_dir}/spec/unit/recipes/default_spec.rb" do
73
- source "recipe_spec.rb.erb"
74
- helpers(CookbookCreator::Generator::TemplateHelper)
75
- action :create_if_missing
76
- end
77
-
78
- # Recipes
79
-
80
- directory "#{cookbook_dir}/recipes"
81
-
82
- template "#{cookbook_dir}/recipes/default.rb" do
83
- source "recipe.rb.erb"
84
- helpers(CookbookCreator::Generator::TemplateHelper)
85
- action :create_if_missing
86
- end
87
-
88
- # git
89
- if context.have_git
90
-
91
- cookbook_file "#{cookbook_dir}/.gitignore" do
92
- source "gitignore"
93
- end
94
- end
@@ -1,24 +0,0 @@
1
-
2
- context = ChefDK::Generator.context
3
- cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
4
- files_dir = File.join(cookbook_dir, "files", "default")
5
- cookbook_file_path = File.join(cookbook_dir, "files", "default", "#{context.new_file_basename}")
6
-
7
- directory files_dir do
8
- recursive true
9
- end
10
-
11
- if source_file = context.content_source
12
-
13
- file cookbook_file_path do
14
- content(IO.read(source_file))
15
- end
16
-
17
- else
18
-
19
- template cookbook_file_path do
20
- source "cookbook_file.erb"
21
- helpers(ChefDK::Generator::TemplateHelper)
22
- end
23
-
24
- end
@@ -1,23 +0,0 @@
1
-
2
- context = ChefDK::Generator.context
3
- cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
4
-
5
- resource_dir = File.join(cookbook_dir, "resources")
6
- resource_path = File.join(resource_dir, "#{context.new_file_basename}.rb")
7
-
8
- provider_dir = File.join(cookbook_dir, "providers")
9
- provider_path = File.join(provider_dir, "#{context.new_file_basename}.rb")
10
-
11
- directory resource_dir
12
-
13
- template resource_path do
14
- source "resource.rb.erb"
15
- helpers(ChefDK::Generator::TemplateHelper)
16
- end
17
-
18
- directory provider_dir
19
-
20
- template provider_path do
21
- source "provider.rb.erb"
22
- helpers(ChefDK::Generator::TemplateHelper)
23
- end
@@ -1,8 +0,0 @@
1
-
2
- context = ChefDK::Generator.context
3
- policyfile_path = File.join(context.policyfile_dir, "#{context.new_file_basename}.rb")
4
-
5
- template policyfile_path do
6
- source "Policyfile.rb.erb"
7
- helpers(ChefDK::Generator::TemplateHelper)
8
- end
@@ -1,27 +0,0 @@
1
-
2
- context = ChefDK::Generator.context
3
- cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
4
- recipe_path = File.join(cookbook_dir, "recipes", "#{context.new_file_basename}.rb")
5
- spec_helper_path = File.join(cookbook_dir, "spec", "spec_helper.rb")
6
- spec_path = File.join(cookbook_dir, "spec", "unit", "recipes", "#{context.new_file_basename}_spec.rb")
7
-
8
- # Chefspec
9
- directory "#{cookbook_dir}/spec/unit/recipes" do
10
- recursive true
11
- end
12
-
13
- cookbook_file spec_helper_path do
14
- action :create_if_missing
15
- end
16
-
17
- template spec_path do
18
- source "recipe_spec.rb.erb"
19
- helpers(ChefDK::Generator::TemplateHelper)
20
- action :create_if_missing
21
- end
22
-
23
- # Recipe
24
- template recipe_path do
25
- source "recipe.rb.erb"
26
- helpers(ChefDK::Generator::TemplateHelper)
27
- end
@@ -1,67 +0,0 @@
1
- context = ChefDK::Generator.context
2
- repo_dir = File.join(context.repo_root, context.repo_name)
3
-
4
- # repo root dir
5
- directory repo_dir
6
-
7
- # Top level files
8
- template "#{repo_dir}/LICENSE" do
9
- source "LICENSE.#{context.license}.erb"
10
- helpers(ChefDK::Generator::TemplateHelper)
11
- action :create_if_missing
12
- end
13
-
14
- cookbook_file "#{repo_dir}/.chef-repo.txt" do
15
- source "repo/dot-chef-repo.txt"
16
- action :create_if_missing
17
- end
18
-
19
- cookbook_file "#{repo_dir}/README.md" do
20
- source "repo/README.md"
21
- action :create_if_missing
22
- end
23
-
24
- cookbook_file "#{repo_dir}/chefignore" do
25
- source "chefignore"
26
- action :create_if_missing
27
- end
28
-
29
- directories_to_create = %w{ cookbooks data_bags }
30
-
31
- if context.use_roles
32
- directories_to_create += %w{ roles environments }
33
- else
34
- directories_to_create += %w{ policies }
35
- end
36
-
37
- directories_to_create.each do |tlo|
38
- remote_directory "#{repo_dir}/#{tlo}" do
39
- source "repo/#{tlo}"
40
- action :create_if_missing
41
- end
42
- end
43
-
44
- cookbook_file "#{repo_dir}/cookbooks/README.md" do
45
- if context.policy_only
46
- source "cookbook_readmes/README-policy.md"
47
- else
48
- source "cookbook_readmes/README.md"
49
- end
50
- action :create_if_missing
51
- end
52
-
53
- # git
54
- if context.have_git
55
- if !context.skip_git_init
56
- execute("initialize-git") do
57
- command("git init .")
58
- cwd repo_dir
59
- not_if { File.exist?("#{repo_dir}/.gitignore") }
60
- end
61
- end
62
- template "#{repo_dir}/.gitignore" do
63
- source "repo/gitignore.erb"
64
- helpers(ChefDK::Generator::TemplateHelper)
65
- action :create_if_missing
66
- end
67
- end
@@ -1,32 +0,0 @@
1
-
2
- context = ChefDK::Generator.context
3
- cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
4
- template_dir = File.join(cookbook_dir, "templates", "default")
5
- template_filename = context.new_file_basename
6
-
7
- unless File.extname(template_filename) == ".erb"
8
- # new_file_basename is a frozen string, so we have to create an entirely
9
- # new string here instead of using concat.
10
- template_filename = "#{template_filename}.erb"
11
- end
12
-
13
- template_path = File.join(cookbook_dir, "templates", "default", template_filename)
14
-
15
- directory template_dir do
16
- recursive true
17
- end
18
-
19
- if source_file = context.content_source
20
-
21
- file template_path do
22
- content(IO.read(source_file))
23
- end
24
-
25
- else
26
-
27
- template template_path do
28
- source "template.erb"
29
- helpers(ChefDK::Generator::TemplateHelper)
30
- end
31
-
32
- end
@@ -1,3 +0,0 @@
1
- Copyright <%= year %> <%= copyright_holder %>
2
-
3
- All rights reserved, do not redistribute.
@@ -1,201 +0,0 @@
1
- Apache License
2
- Version 2.0, January 2004
3
- http://www.apache.org/licenses/
4
-
5
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
-
7
- 1. Definitions.
8
-
9
- "License" shall mean the terms and conditions for use, reproduction,
10
- and distribution as defined by Sections 1 through 9 of this document.
11
-
12
- "Licensor" shall mean the copyright owner or entity authorized by
13
- the copyright owner that is granting the License.
14
-
15
- "Legal Entity" shall mean the union of the acting entity and all
16
- other entities that control, are controlled by, or are under common
17
- control with that entity. For the purposes of this definition,
18
- "control" means (i) the power, direct or indirect, to cause the
19
- direction or management of such entity, whether by contract or
20
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
- outstanding shares, or (iii) beneficial ownership of such entity.
22
-
23
- "You" (or "Your") shall mean an individual or Legal Entity
24
- exercising permissions granted by this License.
25
-
26
- "Source" form shall mean the preferred form for making modifications,
27
- including but not limited to software source code, documentation
28
- source, and configuration files.
29
-
30
- "Object" form shall mean any form resulting from mechanical
31
- transformation or translation of a Source form, including but
32
- not limited to compiled object code, generated documentation,
33
- and conversions to other media types.
34
-
35
- "Work" shall mean the work of authorship, whether in Source or
36
- Object form, made available under the License, as indicated by a
37
- copyright notice that is included in or attached to the work
38
- (an example is provided in the Appendix below).
39
-
40
- "Derivative Works" shall mean any work, whether in Source or Object
41
- form, that is based on (or derived from) the Work and for which the
42
- editorial revisions, annotations, elaborations, or other modifications
43
- represent, as a whole, an original work of authorship. For the purposes
44
- of this License, Derivative Works shall not include works that remain
45
- separable from, or merely link (or bind by name) to the interfaces of,
46
- the Work and Derivative Works thereof.
47
-
48
- "Contribution" shall mean any work of authorship, including
49
- the original version of the Work and any modifications or additions
50
- to that Work or Derivative Works thereof, that is intentionally
51
- submitted to Licensor for inclusion in the Work by the copyright owner
52
- or by an individual or Legal Entity authorized to submit on behalf of
53
- the copyright owner. For the purposes of this definition, "submitted"
54
- means any form of electronic, verbal, or written communication sent
55
- to the Licensor or its representatives, including but not limited to
56
- communication on electronic mailing lists, source code control systems,
57
- and issue tracking systems that are managed by, or on behalf of, the
58
- Licensor for the purpose of discussing and improving the Work, but
59
- excluding communication that is conspicuously marked or otherwise
60
- designated in writing by the copyright owner as "Not a Contribution."
61
-
62
- "Contributor" shall mean Licensor and any individual or Legal Entity
63
- on behalf of whom a Contribution has been received by Licensor and
64
- subsequently incorporated within the Work.
65
-
66
- 2. Grant of Copyright License. Subject to the terms and conditions of
67
- this License, each Contributor hereby grants to You a perpetual,
68
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
- copyright license to reproduce, prepare Derivative Works of,
70
- publicly display, publicly perform, sublicense, and distribute the
71
- Work and such Derivative Works in Source or Object form.
72
-
73
- 3. Grant of Patent License. Subject to the terms and conditions of
74
- this License, each Contributor hereby grants to You a perpetual,
75
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
- (except as stated in this section) patent license to make, have made,
77
- use, offer to sell, sell, import, and otherwise transfer the Work,
78
- where such license applies only to those patent claims licensable
79
- by such Contributor that are necessarily infringed by their
80
- Contribution(s) alone or by combination of their Contribution(s)
81
- with the Work to which such Contribution(s) was submitted. If You
82
- institute patent litigation against any entity (including a
83
- cross-claim or counterclaim in a lawsuit) alleging that the Work
84
- or a Contribution incorporated within the Work constitutes direct
85
- or contributory patent infringement, then any patent licenses
86
- granted to You under this License for that Work shall terminate
87
- as of the date such litigation is filed.
88
-
89
- 4. Redistribution. You may reproduce and distribute copies of the
90
- Work or Derivative Works thereof in any medium, with or without
91
- modifications, and in Source or Object form, provided that You
92
- meet the following conditions:
93
-
94
- (a) You must give any other recipients of the Work or
95
- Derivative Works a copy of this License; and
96
-
97
- (b) You must cause any modified files to carry prominent notices
98
- stating that You changed the files; and
99
-
100
- (c) You must retain, in the Source form of any Derivative Works
101
- that You distribute, all copyright, patent, trademark, and
102
- attribution notices from the Source form of the Work,
103
- excluding those notices that do not pertain to any part of
104
- the Derivative Works; and
105
-
106
- (d) If the Work includes a "NOTICE" text file as part of its
107
- distribution, then any Derivative Works that You distribute must
108
- include a readable copy of the attribution notices contained
109
- within such NOTICE file, excluding those notices that do not
110
- pertain to any part of the Derivative Works, in at least one
111
- of the following places: within a NOTICE text file distributed
112
- as part of the Derivative Works; within the Source form or
113
- documentation, if provided along with the Derivative Works; or,
114
- within a display generated by the Derivative Works, if and
115
- wherever such third-party notices normally appear. The contents
116
- of the NOTICE file are for informational purposes only and
117
- do not modify the License. You may add Your own attribution
118
- notices within Derivative Works that You distribute, alongside
119
- or as an addendum to the NOTICE text from the Work, provided
120
- that such additional attribution notices cannot be construed
121
- as modifying the License.
122
-
123
- You may add Your own copyright statement to Your modifications and
124
- may provide additional or different license terms and conditions
125
- for use, reproduction, or distribution of Your modifications, or
126
- for any such Derivative Works as a whole, provided Your use,
127
- reproduction, and distribution of the Work otherwise complies with
128
- the conditions stated in this License.
129
-
130
- 5. Submission of Contributions. Unless You explicitly state otherwise,
131
- any Contribution intentionally submitted for inclusion in the Work
132
- by You to the Licensor shall be under the terms and conditions of
133
- this License, without any additional terms or conditions.
134
- Notwithstanding the above, nothing herein shall supersede or modify
135
- the terms of any separate license agreement you may have executed
136
- with Licensor regarding such Contributions.
137
-
138
- 6. Trademarks. This License does not grant permission to use the trade
139
- names, trademarks, service marks, or product names of the Licensor,
140
- except as required for reasonable and customary use in describing the
141
- origin of the Work and reproducing the content of the NOTICE file.
142
-
143
- 7. Disclaimer of Warranty. Unless required by applicable law or
144
- agreed to in writing, Licensor provides the Work (and each
145
- Contributor provides its Contributions) on an "AS IS" BASIS,
146
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
- implied, including, without limitation, any warranties or conditions
148
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
- PARTICULAR PURPOSE. You are solely responsible for determining the
150
- appropriateness of using or redistributing the Work and assume any
151
- risks associated with Your exercise of permissions under this License.
152
-
153
- 8. Limitation of Liability. In no event and under no legal theory,
154
- whether in tort (including negligence), contract, or otherwise,
155
- unless required by applicable law (such as deliberate and grossly
156
- negligent acts) or agreed to in writing, shall any Contributor be
157
- liable to You for damages, including any direct, indirect, special,
158
- incidental, or consequential damages of any character arising as a
159
- result of this License or out of the use or inability to use the
160
- Work (including but not limited to damages for loss of goodwill,
161
- work stoppage, computer failure or malfunction, or any and all
162
- other commercial damages or losses), even if such Contributor
163
- has been advised of the possibility of such damages.
164
-
165
- 9. Accepting Warranty or Additional Liability. While redistributing
166
- the Work or Derivative Works thereof, You may choose to offer,
167
- and charge a fee for, acceptance of support, warranty, indemnity,
168
- or other liability obligations and/or rights consistent with this
169
- License. However, in accepting such obligations, You may act only
170
- on Your own behalf and on Your sole responsibility, not on behalf
171
- of any other Contributor, and only if You agree to indemnify,
172
- defend, and hold each Contributor harmless for any liability
173
- incurred by, or claims asserted against, such Contributor by reason
174
- of your accepting any such warranty or additional liability.
175
-
176
- END OF TERMS AND CONDITIONS
177
-
178
- APPENDIX: How to apply the Apache License to your work.
179
-
180
- To apply the Apache License to your work, attach the following
181
- boilerplate notice, with the fields enclosed by brackets "[]"
182
- replaced with your own identifying information. (Don't include
183
- the brackets!) The text should be enclosed in the appropriate
184
- comment syntax for the file format. We also recommend that a
185
- file or class name and description of purpose be included on the
186
- same "printed page" as the copyright notice for easier
187
- identification within third-party archives.
188
-
189
- Copyright [yyyy] [name of copyright owner]
190
-
191
- Licensed under the Apache License, Version 2.0 (the "License");
192
- you may not use this file except in compliance with the License.
193
- You may obtain a copy of the License at
194
-
195
- http://www.apache.org/licenses/LICENSE-2.0
196
-
197
- Unless required by applicable law or agreed to in writing, software
198
- distributed under the License is distributed on an "AS IS" BASIS,
199
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
- See the License for the specific language governing permissions and
201
- limitations under the License.