cookstyle-ng 8.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (275) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +25 -0
  3. data/LICENSE +201 -0
  4. data/bin/cookstyle +26 -0
  5. data/bin/cookstyle-profile +31 -0
  6. data/config/cookstyle.yml +3248 -0
  7. data/cookstyle.gemspec +30 -0
  8. data/lib/cookstyle/version.rb +5 -0
  9. data/lib/cookstyle.rb +44 -0
  10. data/lib/rubocop/chef/autocorrect_helpers.rb +33 -0
  11. data/lib/rubocop/chef/cookbook_helpers.rb +127 -0
  12. data/lib/rubocop/chef/cookbook_only.rb +76 -0
  13. data/lib/rubocop/chef/platform_helpers.rb +72 -0
  14. data/lib/rubocop/chef.rb +11 -0
  15. data/lib/rubocop/cop/chef/correctness/block_guard_clause_string_only.rb +61 -0
  16. data/lib/rubocop/cop/chef/correctness/chef_application_fatal.rb +56 -0
  17. data/lib/rubocop/cop/chef/correctness/conditional_ruby_shellout.rb +69 -0
  18. data/lib/rubocop/cop/chef/correctness/dnf_package_allow_downgrades.rb +55 -0
  19. data/lib/rubocop/cop/chef/correctness/incorrect_library_injection.rb +77 -0
  20. data/lib/rubocop/cop/chef/correctness/invalid_cookbook_name.rb +47 -0
  21. data/lib/rubocop/cop/chef/correctness/invalid_default_action.rb +48 -0
  22. data/lib/rubocop/cop/chef/correctness/invalid_notification_resource.rb +59 -0
  23. data/lib/rubocop/cop/chef/correctness/invalid_notification_timing.rb +55 -0
  24. data/lib/rubocop/cop/chef/correctness/invalid_platform_family_helper.rb +72 -0
  25. data/lib/rubocop/cop/chef/correctness/invalid_platform_family_values_in_case.rb +70 -0
  26. data/lib/rubocop/cop/chef/correctness/invalid_platform_helper.rb +57 -0
  27. data/lib/rubocop/cop/chef/correctness/invalid_platform_metadata.rb +89 -0
  28. data/lib/rubocop/cop/chef/correctness/invalid_platform_values_in_case.rb +70 -0
  29. data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_family_helper.rb +70 -0
  30. data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_helper.rb +69 -0
  31. data/lib/rubocop/cop/chef/correctness/invalid_version_metadata.rb +48 -0
  32. data/lib/rubocop/cop/chef/correctness/lazy_eval_node_attribute_defaults.rb +53 -0
  33. data/lib/rubocop/cop/chef/correctness/lazy_in_resource_guard.rb +67 -0
  34. data/lib/rubocop/cop/chef/correctness/macos_userdefaults_invalid_type.rb +67 -0
  35. data/lib/rubocop/cop/chef/correctness/malformed_value_for_platform.rb +67 -0
  36. data/lib/rubocop/cop/chef/correctness/metadata_malformed_version.rb +58 -0
  37. data/lib/rubocop/cop/chef/correctness/metadata_missing_name.rb +54 -0
  38. data/lib/rubocop/cop/chef/correctness/metadata_missing_version.rb +51 -0
  39. data/lib/rubocop/cop/chef/correctness/node_normal.rb +53 -0
  40. data/lib/rubocop/cop/chef/correctness/node_normal_unless.rb +53 -0
  41. data/lib/rubocop/cop/chef/correctness/node_save.rb +46 -0
  42. data/lib/rubocop/cop/chef/correctness/notifies_action_not_symbol.rb +64 -0
  43. data/lib/rubocop/cop/chef/correctness/octal_mode_as_string.rb +48 -0
  44. data/lib/rubocop/cop/chef/correctness/openssl_password_helpers.rb +46 -0
  45. data/lib/rubocop/cop/chef/correctness/powershell_delete_file.rb +54 -0
  46. data/lib/rubocop/cop/chef/correctness/powershell_file_exists.rb +50 -0
  47. data/lib/rubocop/cop/chef/correctness/property_without_type.rb +59 -0
  48. data/lib/rubocop/cop/chef/correctness/resource_sets_internal_properties.rb +51 -0
  49. data/lib/rubocop/cop/chef/correctness/resource_sets_name_property.rb +50 -0
  50. data/lib/rubocop/cop/chef/correctness/resource_with_none_action.rb +56 -0
  51. data/lib/rubocop/cop/chef/correctness/scoped_file_exist.rb +52 -0
  52. data/lib/rubocop/cop/chef/correctness/service_resource.rb +56 -0
  53. data/lib/rubocop/cop/chef/correctness/supports_must_be_float.rb +52 -0
  54. data/lib/rubocop/cop/chef/correctness/tmp_path.rb +59 -0
  55. data/lib/rubocop/cop/chef/deprecation/cb_depends_on_self.rb +57 -0
  56. data/lib/rubocop/cop/chef/deprecation/chef_handler_recipe.rb +52 -0
  57. data/lib/rubocop/cop/chef/deprecation/chef_handler_supports.rb +55 -0
  58. data/lib/rubocop/cop/chef/deprecation/chef_rest.rb +57 -0
  59. data/lib/rubocop/cop/chef/deprecation/chef_rewind.rb +98 -0
  60. data/lib/rubocop/cop/chef/deprecation/chef_shellout.rb +83 -0
  61. data/lib/rubocop/cop/chef/deprecation/chef_sugar_helpers.rb +55 -0
  62. data/lib/rubocop/cop/chef/deprecation/chef_windows_platform_helper.rb +55 -0
  63. data/lib/rubocop/cop/chef/deprecation/chefdk_generators.rb +56 -0
  64. data/lib/rubocop/cop/chef/deprecation/cheffile.rb +39 -0
  65. data/lib/rubocop/cop/chef/deprecation/chefspec_coverage_report.rb +49 -0
  66. data/lib/rubocop/cop/chef/deprecation/chefspec_legacy_runner.rb +61 -0
  67. data/lib/rubocop/cop/chef/deprecation/chocolatey_package_uninstall_action.rb +56 -0
  68. data/lib/rubocop/cop/chef/deprecation/delivery.rb +48 -0
  69. data/lib/rubocop/cop/chef/deprecation/depends_chef_nginx_cookbook.rb +54 -0
  70. data/lib/rubocop/cop/chef/deprecation/depends_chef_reporting_cookbook.rb +51 -0
  71. data/lib/rubocop/cop/chef/deprecation/depends_compat_resource.rb +54 -0
  72. data/lib/rubocop/cop/chef/deprecation/depends_omnibus_updater_cookbook.rb +54 -0
  73. data/lib/rubocop/cop/chef/deprecation/depends_partial_search.rb +50 -0
  74. data/lib/rubocop/cop/chef/deprecation/depends_poise.rb +48 -0
  75. data/lib/rubocop/cop/chef/deprecation/deprecated_chefspec_platform.rb +129 -0
  76. data/lib/rubocop/cop/chef/deprecation/deprecated_mixins.rb +78 -0
  77. data/lib/rubocop/cop/chef/deprecation/deprecated_platform_methods.rb +61 -0
  78. data/lib/rubocop/cop/chef/deprecation/deprecated_shellout_methods.rb +64 -0
  79. data/lib/rubocop/cop/chef/deprecation/deprecated_sudo_actions.rb +65 -0
  80. data/lib/rubocop/cop/chef/deprecation/deprecated_windows_version_check.rb +42 -0
  81. data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_actions.rb +67 -0
  82. data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_properties.rb +69 -0
  83. data/lib/rubocop/cop/chef/deprecation/easy_install.rb +42 -0
  84. data/lib/rubocop/cop/chef/deprecation/eol_audit_mode.rb +49 -0
  85. data/lib/rubocop/cop/chef/deprecation/epic_fail.rb +51 -0
  86. data/lib/rubocop/cop/chef/deprecation/erl_call.rb +42 -0
  87. data/lib/rubocop/cop/chef/deprecation/execute_path_property.rb +50 -0
  88. data/lib/rubocop/cop/chef/deprecation/execute_relative_creates_without_cwd.rb +66 -0
  89. data/lib/rubocop/cop/chef/deprecation/foodcritic_file.rb +41 -0
  90. data/lib/rubocop/cop/chef/deprecation/foodcritic_testing.rb +43 -0
  91. data/lib/rubocop/cop/chef/deprecation/hwrp_without_provides.rb +140 -0
  92. data/lib/rubocop/cop/chef/deprecation/hwrp_without_unified_mode_true.rb +86 -0
  93. data/lib/rubocop/cop/chef/deprecation/inherits_compat_resource.rb +59 -0
  94. data/lib/rubocop/cop/chef/deprecation/launchd_deprecated_hash_property.rb +56 -0
  95. data/lib/rubocop/cop/chef/deprecation/legacy_notify_syntax.rb +91 -0
  96. data/lib/rubocop/cop/chef/deprecation/legacy_yum_cookbook_recipes.rb +53 -0
  97. data/lib/rubocop/cop/chef/deprecation/librarian_chefspec.rb +42 -0
  98. data/lib/rubocop/cop/chef/deprecation/locale_lc_all_property.rb +46 -0
  99. data/lib/rubocop/cop/chef/deprecation/log_resource_notifications.rb +63 -0
  100. data/lib/rubocop/cop/chef/deprecation/macos_userdefaults_global_property.rb +60 -0
  101. data/lib/rubocop/cop/chef/deprecation/name_property_and_default.rb +60 -0
  102. data/lib/rubocop/cop/chef/deprecation/node_deep_fetch.rb +65 -0
  103. data/lib/rubocop/cop/chef/deprecation/node_methods_not_attributes.rb +80 -0
  104. data/lib/rubocop/cop/chef/deprecation/node_set.rb +54 -0
  105. data/lib/rubocop/cop/chef/deprecation/node_set_unless.rb +54 -0
  106. data/lib/rubocop/cop/chef/deprecation/node_set_without_level.rb +70 -0
  107. data/lib/rubocop/cop/chef/deprecation/partial_search_class_usage.rb +67 -0
  108. data/lib/rubocop/cop/chef/deprecation/partial_search_helper_usage.rb +61 -0
  109. data/lib/rubocop/cop/chef/deprecation/poise_archive.rb +63 -0
  110. data/lib/rubocop/cop/chef/deprecation/policyfile_community_source.rb +53 -0
  111. data/lib/rubocop/cop/chef/deprecation/powershell_cookbook_helpers.rb +59 -0
  112. data/lib/rubocop/cop/chef/deprecation/require_recipe.rb +53 -0
  113. data/lib/rubocop/cop/chef/deprecation/resource_overrides_provides_method.rb +48 -0
  114. data/lib/rubocop/cop/chef/deprecation/resource_uses_dsl_name_method.rb +46 -0
  115. data/lib/rubocop/cop/chef/deprecation/resource_uses_only_resource_name.rb +84 -0
  116. data/lib/rubocop/cop/chef/deprecation/resource_uses_provider_base_method.rb +40 -0
  117. data/lib/rubocop/cop/chef/deprecation/resource_uses_updated_method.rb +50 -0
  118. data/lib/rubocop/cop/chef/deprecation/resource_without_unified_mode_true.rb +87 -0
  119. data/lib/rubocop/cop/chef/deprecation/ruby_27_keyword_argument_warnings.rb +56 -0
  120. data/lib/rubocop/cop/chef/deprecation/ruby_block_create_action.rb +62 -0
  121. data/lib/rubocop/cop/chef/deprecation/run_command_helper.rb +63 -0
  122. data/lib/rubocop/cop/chef/deprecation/search_uses_positional_parameters.rb +136 -0
  123. data/lib/rubocop/cop/chef/deprecation/use_automatic_resource_name.rb +52 -0
  124. data/lib/rubocop/cop/chef/deprecation/use_inline_resources.rb +57 -0
  125. data/lib/rubocop/cop/chef/deprecation/use_yaml_dump.rb +47 -0
  126. data/lib/rubocop/cop/chef/deprecation/user_supports_property.rb +71 -0
  127. data/lib/rubocop/cop/chef/deprecation/verify_property_file_expansion.rb +57 -0
  128. data/lib/rubocop/cop/chef/deprecation/windows_feature_servermanagercmd.rb +58 -0
  129. data/lib/rubocop/cop/chef/deprecation/windows_package_installer_type_string.rb +60 -0
  130. data/lib/rubocop/cop/chef/deprecation/windows_task_change_action.rb +83 -0
  131. data/lib/rubocop/cop/chef/deprecation/windows_version_helpers.rb +71 -0
  132. data/lib/rubocop/cop/chef/deprecation/xml_ruby_recipe.rb +51 -0
  133. data/lib/rubocop/cop/chef/deprecation/yum_dnf_compat_recipe.rb +53 -0
  134. data/lib/rubocop/cop/chef/effortless/berksfile.rb +39 -0
  135. data/lib/rubocop/cop/chef/effortless/chef_vault_used.rb +87 -0
  136. data/lib/rubocop/cop/chef/effortless/data_bags.rb +40 -0
  137. data/lib/rubocop/cop/chef/effortless/depends_chef_vault.rb +47 -0
  138. data/lib/rubocop/cop/chef/effortless/node_environment.rb +45 -0
  139. data/lib/rubocop/cop/chef/effortless/node_policygroup.rb +44 -0
  140. data/lib/rubocop/cop/chef/effortless/node_roles.rb +45 -0
  141. data/lib/rubocop/cop/chef/effortless/search_for_environments_or_roles.rb +43 -0
  142. data/lib/rubocop/cop/chef/effortless/search_used.rb +40 -0
  143. data/lib/rubocop/cop/chef/modernize/action_method_in_resource.rb +57 -0
  144. data/lib/rubocop/cop/chef/modernize/allowed_actions_initializer.rb +77 -0
  145. data/lib/rubocop/cop/chef/modernize/apt_default_recipe.rb +54 -0
  146. data/lib/rubocop/cop/chef/modernize/berksfile_source.rb +70 -0
  147. data/lib/rubocop/cop/chef/modernize/build_essential.rb +55 -0
  148. data/lib/rubocop/cop/chef/modernize/chef_14_resources.rb +60 -0
  149. data/lib/rubocop/cop/chef/modernize/chef_15_resources.rb +57 -0
  150. data/lib/rubocop/cop/chef/modernize/chef_gem_nokogiri.rb +63 -0
  151. data/lib/rubocop/cop/chef/modernize/class_eval_action_class.rb +63 -0
  152. data/lib/rubocop/cop/chef/modernize/compile_time_resources.rb +53 -0
  153. data/lib/rubocop/cop/chef/modernize/conditional_using_test.rb +55 -0
  154. data/lib/rubocop/cop/chef/modernize/cron_d_file_or_template.rb +121 -0
  155. data/lib/rubocop/cop/chef/modernize/cron_manage_resource.rb +50 -0
  156. data/lib/rubocop/cop/chef/modernize/databag_helpers.rb +59 -0
  157. data/lib/rubocop/cop/chef/modernize/declare_action_class.rb +54 -0
  158. data/lib/rubocop/cop/chef/modernize/default_action_initializer.rb +74 -0
  159. data/lib/rubocop/cop/chef/modernize/defines_chefspec_matchers.rb +54 -0
  160. data/lib/rubocop/cop/chef/modernize/definitions.rb +36 -0
  161. data/lib/rubocop/cop/chef/modernize/depends_chef_vault_cookbook.rb +54 -0
  162. data/lib/rubocop/cop/chef/modernize/depends_chocolatey_cookbooks.rb +55 -0
  163. data/lib/rubocop/cop/chef/modernize/depends_kernel_module_cookbook.rb +54 -0
  164. data/lib/rubocop/cop/chef/modernize/depends_locale_cookbook.rb +54 -0
  165. data/lib/rubocop/cop/chef/modernize/depends_openssl_cookbook.rb +54 -0
  166. data/lib/rubocop/cop/chef/modernize/depends_timezone_lwrp_cookbook.rb +54 -0
  167. data/lib/rubocop/cop/chef/modernize/depends_windows_firewall_cookbook.rb +54 -0
  168. data/lib/rubocop/cop/chef/modernize/depends_zypper_cookbook.rb +54 -0
  169. data/lib/rubocop/cop/chef/modernize/dsl_include_in_resource.rb +55 -0
  170. data/lib/rubocop/cop/chef/modernize/empty_resource_initialize.rb +52 -0
  171. data/lib/rubocop/cop/chef/modernize/execute_apt_update.rb +81 -0
  172. data/lib/rubocop/cop/chef/modernize/execute_sc_exe.rb +67 -0
  173. data/lib/rubocop/cop/chef/modernize/execute_sleep.rb +76 -0
  174. data/lib/rubocop/cop/chef/modernize/execute_sysctl.rb +70 -0
  175. data/lib/rubocop/cop/chef/modernize/execute_tzutil.rb +83 -0
  176. data/lib/rubocop/cop/chef/modernize/foodcritic_comments.rb +46 -0
  177. data/lib/rubocop/cop/chef/modernize/if_provides_default_action.rb +48 -0
  178. data/lib/rubocop/cop/chef/modernize/includes_mixin_shellout.rb +83 -0
  179. data/lib/rubocop/cop/chef/modernize/libarchive_file.rb +70 -0
  180. data/lib/rubocop/cop/chef/modernize/macos_user_defaults.rb +58 -0
  181. data/lib/rubocop/cop/chef/modernize/minitest_handler_usage.rb +51 -0
  182. data/lib/rubocop/cop/chef/modernize/node_init_package.rb +89 -0
  183. data/lib/rubocop/cop/chef/modernize/node_roles_include.rb +57 -0
  184. data/lib/rubocop/cop/chef/modernize/ohai_default_recipe.rb +47 -0
  185. data/lib/rubocop/cop/chef/modernize/openssl_rsa_key_resource.rb +54 -0
  186. data/lib/rubocop/cop/chef/modernize/openssl_x509_resource.rb +60 -0
  187. data/lib/rubocop/cop/chef/modernize/osx_config_profile_resource.rb +51 -0
  188. data/lib/rubocop/cop/chef/modernize/powershell_expand_archive.rb +50 -0
  189. data/lib/rubocop/cop/chef/modernize/powershell_guard_interpreter.rb +68 -0
  190. data/lib/rubocop/cop/chef/modernize/powershell_install_package.rb +53 -0
  191. data/lib/rubocop/cop/chef/modernize/powershell_install_windowsfeature.rb +56 -0
  192. data/lib/rubocop/cop/chef/modernize/property_with_name_attribute.rb +56 -0
  193. data/lib/rubocop/cop/chef/modernize/provides_initializer.rb +68 -0
  194. data/lib/rubocop/cop/chef/modernize/resource_name_initializer.rb +63 -0
  195. data/lib/rubocop/cop/chef/modernize/resource_set_or_return.rb +49 -0
  196. data/lib/rubocop/cop/chef/modernize/resource_with_attributes.rb +66 -0
  197. data/lib/rubocop/cop/chef/modernize/respond_to_compile_time.rb +94 -0
  198. data/lib/rubocop/cop/chef/modernize/respond_to_metadata.rb +77 -0
  199. data/lib/rubocop/cop/chef/modernize/respond_to_provides.rb +63 -0
  200. data/lib/rubocop/cop/chef/modernize/respond_to_resource_name.rb +52 -0
  201. data/lib/rubocop/cop/chef/modernize/sc_windows_resource.rb +53 -0
  202. data/lib/rubocop/cop/chef/modernize/seven_zip_archive.rb +46 -0
  203. data/lib/rubocop/cop/chef/modernize/shell_out_helper.rb +60 -0
  204. data/lib/rubocop/cop/chef/modernize/shellouts_to_chocolatey.rb +58 -0
  205. data/lib/rubocop/cop/chef/modernize/simplify_apt_ppa_setup.rb +63 -0
  206. data/lib/rubocop/cop/chef/modernize/sysctl_param_resource.rb +55 -0
  207. data/lib/rubocop/cop/chef/modernize/unnecessary_mixlib_shellout_require.rb +51 -0
  208. data/lib/rubocop/cop/chef/modernize/use_chef_language_cloud_helpers.rb +93 -0
  209. data/lib/rubocop/cop/chef/modernize/use_chef_language_env_helpers.rb +69 -0
  210. data/lib/rubocop/cop/chef/modernize/use_chef_language_systemd_helper.rb +60 -0
  211. data/lib/rubocop/cop/chef/modernize/use_multipackage_installs.rb +113 -0
  212. data/lib/rubocop/cop/chef/modernize/use_require_relative.rb +60 -0
  213. data/lib/rubocop/cop/chef/modernize/whyrun_supported_true.rb +58 -0
  214. data/lib/rubocop/cop/chef/modernize/windows_default_recipe.rb +52 -0
  215. data/lib/rubocop/cop/chef/modernize/windows_registry_uac.rb +92 -0
  216. data/lib/rubocop/cop/chef/modernize/windows_zipfile.rb +46 -0
  217. data/lib/rubocop/cop/chef/modernize/zipfile_resource.rb +59 -0
  218. data/lib/rubocop/cop/chef/modernize/zypper_repo.rb +60 -0
  219. data/lib/rubocop/cop/chef/redundant/apt_repository_distribution_default.rb +65 -0
  220. data/lib/rubocop/cop/chef/redundant/apt_repository_notifies_apt_update.rb +60 -0
  221. data/lib/rubocop/cop/chef/redundant/attribute_metadata.rb +52 -0
  222. data/lib/rubocop/cop/chef/redundant/conflicts_metadata.rb +46 -0
  223. data/lib/rubocop/cop/chef/redundant/custom_resource_with_allowed_actions.rb +60 -0
  224. data/lib/rubocop/cop/chef/redundant/double_compile_time.rb +68 -0
  225. data/lib/rubocop/cop/chef/redundant/grouping_metadata.rb +46 -0
  226. data/lib/rubocop/cop/chef/redundant/long_description_metadata.rb +46 -0
  227. data/lib/rubocop/cop/chef/redundant/multiple_platform_checks.rb +58 -0
  228. data/lib/rubocop/cop/chef/redundant/name_property_and_required.rb +81 -0
  229. data/lib/rubocop/cop/chef/redundant/ohai_attribute_to_string.rb +65 -0
  230. data/lib/rubocop/cop/chef/redundant/property_splat_regex.rb +59 -0
  231. data/lib/rubocop/cop/chef/redundant/property_with_default_and_required.rb +61 -0
  232. data/lib/rubocop/cop/chef/redundant/provides_metadata.rb +46 -0
  233. data/lib/rubocop/cop/chef/redundant/recipe_metadata.rb +47 -0
  234. data/lib/rubocop/cop/chef/redundant/replaces_metadata.rb +46 -0
  235. data/lib/rubocop/cop/chef/redundant/resource_with_nothing_action.rb +52 -0
  236. data/lib/rubocop/cop/chef/redundant/sensitive_property_in_resource.rb +50 -0
  237. data/lib/rubocop/cop/chef/redundant/string_property_with_nil_default.rb +64 -0
  238. data/lib/rubocop/cop/chef/redundant/suggests_metadata.rb +46 -0
  239. data/lib/rubocop/cop/chef/redundant/unnecessary_desired_state.rb +60 -0
  240. data/lib/rubocop/cop/chef/redundant/unnecessary_name_property.rb +67 -0
  241. data/lib/rubocop/cop/chef/redundant/use_create_if_missing.rb +116 -0
  242. data/lib/rubocop/cop/chef/security/ssh_private_key.rb +49 -0
  243. data/lib/rubocop/cop/chef/sharing/default_maintainer_metadata.rb +50 -0
  244. data/lib/rubocop/cop/chef/sharing/empty_metadata_field.rb +47 -0
  245. data/lib/rubocop/cop/chef/sharing/include_property_descriptions.rb +55 -0
  246. data/lib/rubocop/cop/chef/sharing/include_resource_descriptions.rb +52 -0
  247. data/lib/rubocop/cop/chef/sharing/include_resource_examples.rb +60 -0
  248. data/lib/rubocop/cop/chef/sharing/insecure_cookbook_url.rb +62 -0
  249. data/lib/rubocop/cop/chef/sharing/invalid_license_string.rb +542 -0
  250. data/lib/rubocop/cop/chef/style/attribute_keys.rb +95 -0
  251. data/lib/rubocop/cop/chef/style/chef_whaaat.rb +49 -0
  252. data/lib/rubocop/cop/chef/style/comment_sentence_spacing.rb +42 -0
  253. data/lib/rubocop/cop/chef/style/comments_copyright_format.rb +101 -0
  254. data/lib/rubocop/cop/chef/style/comments_default_copyright.rb +50 -0
  255. data/lib/rubocop/cop/chef/style/comments_format.rb +71 -0
  256. data/lib/rubocop/cop/chef/style/file_mode.rb +86 -0
  257. data/lib/rubocop/cop/chef/style/immediate_notification_timing.rb +59 -0
  258. data/lib/rubocop/cop/chef/style/include_recipe_with_parentheses.rb +58 -0
  259. data/lib/rubocop/cop/chef/style/negating_only_if.rb +69 -0
  260. data/lib/rubocop/cop/chef/style/overly_complex_supports_depends_metadata.rb +70 -0
  261. data/lib/rubocop/cop/chef/style/simplify_platform_major_version_check.rb +89 -0
  262. data/lib/rubocop/cop/chef/style/true_false_resource_properties.rb +53 -0
  263. data/lib/rubocop/cop/chef/style/unnecessary_os_check.rb +103 -0
  264. data/lib/rubocop/cop/chef/style/unnecessary_platform_case_statement.rb +100 -0
  265. data/lib/rubocop/cop/chef/style/use_platform_helpers.rb +86 -0
  266. data/lib/rubocop/cop/inspec/deprecation/attribute_default.rb +53 -0
  267. data/lib/rubocop/cop/inspec/deprecation/attribute_helper.rb +47 -0
  268. data/lib/rubocop/cop/target_chef_version.rb +22 -0
  269. data/lib/rubocop/monkey_patches/allow_invalid_ruby.rb +28 -0
  270. data/lib/rubocop/monkey_patches/base.rb +11 -0
  271. data/lib/rubocop/monkey_patches/config.rb +15 -0
  272. data/lib/rubocop/monkey_patches/directive_comment.rb +12 -0
  273. data/lib/rubocop/monkey_patches/registry_cop.rb +15 -0
  274. data/lib/rubocop/monkey_patches/team.rb +27 -0
  275. metadata +340 -0
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: Copyright 2020, Chef Software Inc.
4
+ # Author:: Tim Smith (<tsmith84@gmail.com>)
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ module RuboCop
19
+ module Cop
20
+ module Chef
21
+ module Sharing
22
+ # Resources should include examples field to allow automated documentation. Requires Chef Infra Client 13.9 or later.
23
+ #
24
+ # @example
25
+ #
26
+ # ### correct
27
+ # examples <<~DOC
28
+ # **Specify a global domain value**
29
+ #
30
+ # ```ruby
31
+ # macos_userdefaults 'full keyboard access to all controls' do
32
+ # key 'AppleKeyboardUIMode'
33
+ # value '2'
34
+ # end
35
+ # ```
36
+ # DOC
37
+ #
38
+ class IncludeResourceExamples < Base
39
+ include RangeHelp
40
+ extend TargetChefVersion
41
+
42
+ minimum_target_chef_version '13.9'
43
+
44
+ MSG = 'Resources should include examples field to allow automated documentation. Requires Chef Infra Client 13.9 or later.'
45
+
46
+ def on_new_investigation
47
+ return if processed_source.blank? || resource_examples(processed_source.ast).any?
48
+
49
+ # Using range similar to RuboCop::Cop::Naming::Filename (file_name.rb)
50
+ range = source_range(processed_source.buffer, 1, 0)
51
+
52
+ add_offense(range, severity: :refactor)
53
+ end
54
+
55
+ def_node_search :resource_examples, '(send nil? :examples dstr ...)'
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: Copyright 2019, Chef Software Inc.
4
+ # Author:: Tim Smith (<tsmith84@gmail.com>)
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ module RuboCop
19
+ module Cop
20
+ module Chef
21
+ module Sharing
22
+ # Use secure Github and Gitlab URLs for source_url and issues_url
23
+ #
24
+ # @example
25
+ #
26
+ # ### incorrect
27
+ # source_url 'http://github.com/something/something'
28
+ # source_url 'http://www.github.com/something/something'
29
+ # source_url 'http://www.gitlab.com/something/something'
30
+ # source_url 'http://gitlab.com/something/something'
31
+ #
32
+ # ### correct
33
+ # source_url 'http://github.com/something/something'
34
+ # source_url 'http://gitlab.com/something/something'
35
+ #
36
+ class InsecureCookbookURL < Base
37
+ extend AutoCorrector
38
+
39
+ MSG = 'Insecure http Github or Gitlab URLs for metadata source_url/issues_url fields'
40
+ RESTRICT_ON_SEND = [:source_url, :issues_url].freeze
41
+
42
+ def_node_matcher :insecure_cb_url?, <<-PATTERN
43
+ (send nil? {:source_url :issues_url} (str #insecure_url?))
44
+ PATTERN
45
+
46
+ def insecure_url?(url)
47
+ # https://rubular.com/r/dS6L6bQZvwWxWq
48
+ url.match?(%r{http://(www.)*git(hub|lab)})
49
+ end
50
+
51
+ def on_send(node)
52
+ insecure_cb_url?(node) do
53
+ add_offense(node, severity: :refactor) do |corrector|
54
+ corrector.replace(node, node.source.gsub(%r{http://(www.)*}, 'https://'))
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,542 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: 2019, Chef Software Inc.
4
+ # Author:: Tim Smith (<tsmith84@gmail.com>)
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ module RuboCop
19
+ module Cop
20
+ module Chef
21
+ module Sharing
22
+ # metadata.rb license field should include a SPDX compliant string or "all right reserved" (not case sensitive)
23
+ #
24
+ # @example
25
+ #
26
+ # ### incorrect
27
+ # license 'Apache 2.0'
28
+ #
29
+ # ### correct
30
+ # license 'Apache-2.0'
31
+ # license 'all rights reserved'
32
+ #
33
+ # list of valid SPDX.org license strings. To build an array run this ruby:
34
+ # ```ruby
35
+ # require 'json'
36
+ # require 'net/http'
37
+ # json_data = JSON.parse(Net::HTTP.get(URI('https://raw.githubusercontent.com/spdx/license-list-data/master/json/licenses.json')))
38
+ # licenses = json_data['licenses'].map {|l| l['licenseId'] }.sort
39
+ # ```
40
+ #
41
+ class InvalidLicenseString < Base
42
+ extend AutoCorrector
43
+
44
+ VALID_LICENSE_STRING = %w(
45
+ 0BSD
46
+ AAL
47
+ ADSL
48
+ AFL-1.1
49
+ AFL-1.2
50
+ AFL-2.0
51
+ AFL-2.1
52
+ AFL-3.0
53
+ AGPL-1.0
54
+ AGPL-1.0-only
55
+ AGPL-1.0-or-later
56
+ AGPL-3.0
57
+ AGPL-3.0-only
58
+ AGPL-3.0-or-later
59
+ AMDPLPA
60
+ AML
61
+ AMPAS
62
+ ANTLR-PD
63
+ ANTLR-PD-fallback
64
+ APAFML
65
+ APL-1.0
66
+ APSL-1.0
67
+ APSL-1.1
68
+ APSL-1.2
69
+ APSL-2.0
70
+ Abstyles
71
+ Adobe-2006
72
+ Adobe-Glyph
73
+ Afmparse
74
+ Aladdin
75
+ Apache-1.0
76
+ Apache-1.1
77
+ Apache-2.0
78
+ Artistic-1.0
79
+ Artistic-1.0-Perl
80
+ Artistic-1.0-cl8
81
+ Artistic-2.0
82
+ BSD-1-Clause
83
+ BSD-2-Clause
84
+ BSD-2-Clause-FreeBSD
85
+ BSD-2-Clause-NetBSD
86
+ BSD-2-Clause-Patent
87
+ BSD-2-Clause-Views
88
+ BSD-3-Clause
89
+ BSD-3-Clause-Attribution
90
+ BSD-3-Clause-Clear
91
+ BSD-3-Clause-LBNL
92
+ BSD-3-Clause-No-Nuclear-License
93
+ BSD-3-Clause-No-Nuclear-License-2014
94
+ BSD-3-Clause-No-Nuclear-Warranty
95
+ BSD-3-Clause-Open-MPI
96
+ BSD-4-Clause
97
+ BSD-4-Clause-UC
98
+ BSD-Protection
99
+ BSD-Source-Code
100
+ BSL-1.0
101
+ BUSL-1.1
102
+ Bahyph
103
+ Barr
104
+ Beerware
105
+ BitTorrent-1.0
106
+ BitTorrent-1.1
107
+ BlueOak-1.0.0
108
+ Borceux
109
+ CAL-1.0
110
+ CAL-1.0-Combined-Work-Exception
111
+ CATOSL-1.1
112
+ CC-BY-1.0
113
+ CC-BY-2.0
114
+ CC-BY-2.5
115
+ CC-BY-3.0
116
+ CC-BY-3.0-AT
117
+ CC-BY-3.0-US
118
+ CC-BY-4.0
119
+ CC-BY-NC-1.0
120
+ CC-BY-NC-2.0
121
+ CC-BY-NC-2.5
122
+ CC-BY-NC-3.0
123
+ CC-BY-NC-4.0
124
+ CC-BY-NC-ND-1.0
125
+ CC-BY-NC-ND-2.0
126
+ CC-BY-NC-ND-2.5
127
+ CC-BY-NC-ND-3.0
128
+ CC-BY-NC-ND-3.0-IGO
129
+ CC-BY-NC-ND-4.0
130
+ CC-BY-NC-SA-1.0
131
+ CC-BY-NC-SA-2.0
132
+ CC-BY-NC-SA-2.5
133
+ CC-BY-NC-SA-3.0
134
+ CC-BY-NC-SA-4.0
135
+ CC-BY-ND-1.0
136
+ CC-BY-ND-2.0
137
+ CC-BY-ND-2.5
138
+ CC-BY-ND-3.0
139
+ CC-BY-ND-4.0
140
+ CC-BY-SA-1.0
141
+ CC-BY-SA-2.0
142
+ CC-BY-SA-2.0-UK
143
+ CC-BY-SA-2.5
144
+ CC-BY-SA-3.0
145
+ CC-BY-SA-3.0-AT
146
+ CC-BY-SA-4.0
147
+ CC-PDDC
148
+ CC0-1.0
149
+ CDDL-1.0
150
+ CDDL-1.1
151
+ CDLA-Permissive-1.0
152
+ CDLA-Sharing-1.0
153
+ CECILL-1.0
154
+ CECILL-1.1
155
+ CECILL-2.0
156
+ CECILL-2.1
157
+ CECILL-B
158
+ CECILL-C
159
+ CERN-OHL-1.1
160
+ CERN-OHL-1.2
161
+ CERN-OHL-P-2.0
162
+ CERN-OHL-S-2.0
163
+ CERN-OHL-W-2.0
164
+ CNRI-Jython
165
+ CNRI-Python
166
+ CNRI-Python-GPL-Compatible
167
+ CPAL-1.0
168
+ CPL-1.0
169
+ CPOL-1.02
170
+ CUA-OPL-1.0
171
+ Caldera
172
+ ClArtistic
173
+ Condor-1.1
174
+ Crossword
175
+ CrystalStacker
176
+ Cube
177
+ D-FSL-1.0
178
+ DOC
179
+ DSDP
180
+ Dotseqn
181
+ ECL-1.0
182
+ ECL-2.0
183
+ EFL-1.0
184
+ EFL-2.0
185
+ EPICS
186
+ EPL-1.0
187
+ EPL-2.0
188
+ EUDatagrid
189
+ EUPL-1.0
190
+ EUPL-1.1
191
+ EUPL-1.2
192
+ Entessa
193
+ ErlPL-1.1
194
+ Eurosym
195
+ FSFAP
196
+ FSFUL
197
+ FSFULLR
198
+ FTL
199
+ Fair
200
+ Frameworx-1.0
201
+ FreeImage
202
+ GFDL-1.1
203
+ GFDL-1.1-invariants-only
204
+ GFDL-1.1-invariants-or-later
205
+ GFDL-1.1-no-invariants-only
206
+ GFDL-1.1-no-invariants-or-later
207
+ GFDL-1.1-only
208
+ GFDL-1.1-or-later
209
+ GFDL-1.2
210
+ GFDL-1.2-invariants-only
211
+ GFDL-1.2-invariants-or-later
212
+ GFDL-1.2-no-invariants-only
213
+ GFDL-1.2-no-invariants-or-later
214
+ GFDL-1.2-only
215
+ GFDL-1.2-or-later
216
+ GFDL-1.3
217
+ GFDL-1.3-invariants-only
218
+ GFDL-1.3-invariants-or-later
219
+ GFDL-1.3-no-invariants-only
220
+ GFDL-1.3-no-invariants-or-later
221
+ GFDL-1.3-only
222
+ GFDL-1.3-or-later
223
+ GL2PS
224
+ GLWTPL
225
+ GPL-1.0
226
+ GPL-1.0+
227
+ GPL-1.0-only
228
+ GPL-1.0-or-later
229
+ GPL-2.0
230
+ GPL-2.0+
231
+ GPL-2.0-only
232
+ GPL-2.0-or-later
233
+ GPL-2.0-with-GCC-exception
234
+ GPL-2.0-with-autoconf-exception
235
+ GPL-2.0-with-bison-exception
236
+ GPL-2.0-with-classpath-exception
237
+ GPL-2.0-with-font-exception
238
+ GPL-3.0
239
+ GPL-3.0+
240
+ GPL-3.0-only
241
+ GPL-3.0-or-later
242
+ GPL-3.0-with-GCC-exception
243
+ GPL-3.0-with-autoconf-exception
244
+ Giftware
245
+ Glide
246
+ Glulxe
247
+ HPND
248
+ HPND-sell-variant
249
+ HTMLTIDY
250
+ HaskellReport
251
+ Hippocratic-2.1
252
+ IBM-pibs
253
+ ICU
254
+ IJG
255
+ IPA
256
+ IPL-1.0
257
+ ISC
258
+ ImageMagick
259
+ Imlib2
260
+ Info-ZIP
261
+ Intel
262
+ Intel-ACPI
263
+ Interbase-1.0
264
+ JPNIC
265
+ JSON
266
+ JasPer-2.0
267
+ LAL-1.2
268
+ LAL-1.3
269
+ LGPL-2.0
270
+ LGPL-2.0+
271
+ LGPL-2.0-only
272
+ LGPL-2.0-or-later
273
+ LGPL-2.1
274
+ LGPL-2.1+
275
+ LGPL-2.1-only
276
+ LGPL-2.1-or-later
277
+ LGPL-3.0
278
+ LGPL-3.0+
279
+ LGPL-3.0-only
280
+ LGPL-3.0-or-later
281
+ LGPLLR
282
+ LPL-1.0
283
+ LPL-1.02
284
+ LPPL-1.0
285
+ LPPL-1.1
286
+ LPPL-1.2
287
+ LPPL-1.3a
288
+ LPPL-1.3c
289
+ Latex2e
290
+ Leptonica
291
+ LiLiQ-P-1.1
292
+ LiLiQ-R-1.1
293
+ LiLiQ-Rplus-1.1
294
+ Libpng
295
+ Linux-OpenIB
296
+ MIT
297
+ MIT-0
298
+ MIT-CMU
299
+ MIT-advertising
300
+ MIT-enna
301
+ MIT-feh
302
+ MIT-open-group
303
+ MITNFA
304
+ MPL-1.0
305
+ MPL-1.1
306
+ MPL-2.0
307
+ MPL-2.0-no-copyleft-exception
308
+ MS-PL
309
+ MS-RL
310
+ MTLL
311
+ MakeIndex
312
+ MirOS
313
+ Motosoto
314
+ MulanPSL-1.0
315
+ MulanPSL-2.0
316
+ Multics
317
+ Mup
318
+ NASA-1.3
319
+ NBPL-1.0
320
+ NCGL-UK-2.0
321
+ NCSA
322
+ NGPL
323
+ NIST-PD
324
+ NIST-PD-fallback
325
+ NLOD-1.0
326
+ NLPL
327
+ NOSL
328
+ NPL-1.0
329
+ NPL-1.1
330
+ NPOSL-3.0
331
+ NRL
332
+ NTP
333
+ NTP-0
334
+ Naumen
335
+ Net-SNMP
336
+ NetCDF
337
+ Newsletr
338
+ Nokia
339
+ Noweb
340
+ Nunit
341
+ O-UDA-1.0
342
+ OCCT-PL
343
+ OCLC-2.0
344
+ ODC-By-1.0
345
+ ODbL-1.0
346
+ OFL-1.0
347
+ OFL-1.0-RFN
348
+ OFL-1.0-no-RFN
349
+ OFL-1.1
350
+ OFL-1.1-RFN
351
+ OFL-1.1-no-RFN
352
+ OGC-1.0
353
+ OGL-Canada-2.0
354
+ OGL-UK-1.0
355
+ OGL-UK-2.0
356
+ OGL-UK-3.0
357
+ OGTSL
358
+ OLDAP-1.1
359
+ OLDAP-1.2
360
+ OLDAP-1.3
361
+ OLDAP-1.4
362
+ OLDAP-2.0
363
+ OLDAP-2.0.1
364
+ OLDAP-2.1
365
+ OLDAP-2.2
366
+ OLDAP-2.2.1
367
+ OLDAP-2.2.2
368
+ OLDAP-2.3
369
+ OLDAP-2.4
370
+ OLDAP-2.5
371
+ OLDAP-2.6
372
+ OLDAP-2.7
373
+ OLDAP-2.8
374
+ OML
375
+ OPL-1.0
376
+ OSET-PL-2.1
377
+ OSL-1.0
378
+ OSL-1.1
379
+ OSL-2.0
380
+ OSL-2.1
381
+ OSL-3.0
382
+ OpenSSL
383
+ PDDL-1.0
384
+ PHP-3.0
385
+ PHP-3.01
386
+ PSF-2.0
387
+ Parity-6.0.0
388
+ Parity-7.0.0
389
+ Plexus
390
+ PolyForm-Noncommercial-1.0.0
391
+ PolyForm-Small-Business-1.0.0
392
+ PostgreSQL
393
+ Python-2.0
394
+ QPL-1.0
395
+ Qhull
396
+ RHeCos-1.1
397
+ RPL-1.1
398
+ RPL-1.5
399
+ RPSL-1.0
400
+ RSA-MD
401
+ RSCPL
402
+ Rdisc
403
+ Ruby
404
+ SAX-PD
405
+ SCEA
406
+ SGI-B-1.0
407
+ SGI-B-1.1
408
+ SGI-B-2.0
409
+ SHL-0.5
410
+ SHL-0.51
411
+ SISSL
412
+ SISSL-1.2
413
+ SMLNJ
414
+ SMPPL
415
+ SNIA
416
+ SPL-1.0
417
+ SSH-OpenSSH
418
+ SSH-short
419
+ SSPL-1.0
420
+ SWL
421
+ Saxpath
422
+ Sendmail
423
+ Sendmail-8.23
424
+ SimPL-2.0
425
+ Sleepycat
426
+ Spencer-86
427
+ Spencer-94
428
+ Spencer-99
429
+ StandardML-NJ
430
+ SugarCRM-1.1.3
431
+ TAPR-OHL-1.0
432
+ TCL
433
+ TCP-wrappers
434
+ TMate
435
+ TORQUE-1.1
436
+ TOSL
437
+ TU-Berlin-1.0
438
+ TU-Berlin-2.0
439
+ UCL-1.0
440
+ UPL-1.0
441
+ Unicode-DFS-2015
442
+ Unicode-DFS-2016
443
+ Unicode-TOU
444
+ Unlicense
445
+ VOSTROM
446
+ VSL-1.0
447
+ Vim
448
+ W3C
449
+ W3C-19980720
450
+ W3C-20150513
451
+ WTFPL
452
+ Watcom-1.0
453
+ Wsuipa
454
+ X11
455
+ XFree86-1.1
456
+ XSkat
457
+ Xerox
458
+ Xnet
459
+ YPL-1.0
460
+ YPL-1.1
461
+ ZPL-1.1
462
+ ZPL-2.0
463
+ ZPL-2.1
464
+ Zed
465
+ Zend-2.0
466
+ Zimbra-1.3
467
+ Zimbra-1.4
468
+ Zlib
469
+ blessing
470
+ bzip2-1.0.5
471
+ bzip2-1.0.6
472
+ copyleft-next-0.3.0
473
+ copyleft-next-0.3.1
474
+ curl
475
+ diffmark
476
+ dvipdfm
477
+ eCos-2.0
478
+ eGenix
479
+ etalab-2.0
480
+ gSOAP-1.3b
481
+ gnuplot
482
+ iMatix
483
+ libpng-2.0
484
+ libselinux-1.0
485
+ libtiff
486
+ mpich2
487
+ psfrag
488
+ psutils
489
+ wxWindows
490
+ xinetd
491
+ xpp
492
+ zlib-acknowledgement
493
+ ).freeze
494
+
495
+ COMMON_TYPOS = {
496
+ "all_rights": 'all rights reserved',
497
+ "apache 2.0": 'Apache-2.0',
498
+ "apache v2": 'Apache-2.0',
499
+ "apache v2.0": 'Apache-2.0',
500
+ "apache license version 2.0": 'Apache-2.0',
501
+ "apache2": 'Apache-2.0',
502
+ "mit": 'MIT',
503
+ '3-clause bsd': 'BSD-3-Clause',
504
+ 'gnu public license 3.0': 'GPL-3.0',
505
+ 'gpl v2': 'GPL-2.0',
506
+ 'gpl v3': 'GPL-3.0',
507
+ 'gplv2': 'GPL-2.0',
508
+ 'gplv3': 'GPL-3.0',
509
+ 'mit license': 'MIT',
510
+ 'UNLICENSED': 'all rights reserved',
511
+ }.freeze
512
+
513
+ MSG = 'Cookbook metadata.rb does not use a SPDX compliant license string or "all rights reserved". See https://spdx.org/licenses/ for a complete list of license identifiers.'
514
+ RESTRICT_ON_SEND = [:license].freeze
515
+
516
+ def_node_matcher :license?, '(send nil? :license $str ...)'
517
+
518
+ def on_send(node)
519
+ license?(node) do |license|
520
+ return if valid_license?(license.str_content)
521
+ add_offense(license, severity: :refactor) do |corrector|
522
+ correct_string = autocorrect_license_string(license.str_content)
523
+ corrector.replace(license, "'#{correct_string}'") if correct_string
524
+ end
525
+ end
526
+ end
527
+
528
+ # private
529
+
530
+ def autocorrect_license_string(bad_string)
531
+ COMMON_TYPOS[bad_string.delete(',').downcase.to_sym]
532
+ end
533
+
534
+ def valid_license?(license)
535
+ VALID_LICENSE_STRING.include?(license) ||
536
+ license.casecmp('all rights reserved') == 0
537
+ end
538
+ end
539
+ end
540
+ end
541
+ end
542
+ end