inspec 4.3.2 → 4.6.3

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 (368) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +36 -38
  3. data/README.md +37 -21
  4. data/etc/deprecations.json +10 -0
  5. data/etc/plugin_filters.json +8 -0
  6. data/inspec.gemspec +38 -39
  7. data/lib/bundles/inspec-compliance/api.rb +1 -1
  8. data/lib/bundles/inspec-compliance/configuration.rb +1 -1
  9. data/lib/bundles/inspec-compliance/http.rb +1 -1
  10. data/lib/bundles/inspec-compliance/support.rb +1 -1
  11. data/lib/bundles/inspec-compliance/target.rb +1 -1
  12. data/lib/bundles/inspec-supermarket.rb +3 -7
  13. data/lib/bundles/inspec-supermarket/api.rb +10 -13
  14. data/lib/bundles/inspec-supermarket/cli.rb +12 -15
  15. data/lib/bundles/inspec-supermarket/target.rb +7 -11
  16. data/lib/fetchers/git.rb +14 -15
  17. data/lib/fetchers/local.rb +6 -10
  18. data/lib/fetchers/mock.rb +3 -5
  19. data/lib/fetchers/url.rb +42 -44
  20. data/lib/inspec.rb +23 -24
  21. data/lib/inspec/archive/tar.rb +2 -6
  22. data/lib/inspec/archive/zip.rb +3 -7
  23. data/lib/inspec/backend.rb +8 -9
  24. data/lib/inspec/base_cli.rb +64 -65
  25. data/lib/inspec/cached_fetcher.rb +2 -3
  26. data/lib/inspec/cli.rb +136 -97
  27. data/lib/inspec/config.rb +71 -61
  28. data/lib/inspec/control_eval_context.rb +22 -18
  29. data/lib/inspec/dependencies/cache.rb +2 -3
  30. data/lib/inspec/dependencies/dependency_set.rb +2 -3
  31. data/lib/inspec/dependencies/lockfile.rb +8 -9
  32. data/lib/inspec/dependencies/requirement.rb +7 -8
  33. data/lib/inspec/dependencies/resolver.rb +5 -7
  34. data/lib/inspec/describe.rb +2 -6
  35. data/lib/inspec/dist.rb +20 -0
  36. data/lib/inspec/dsl.rb +4 -7
  37. data/lib/inspec/dsl_shared.rb +1 -2
  38. data/lib/inspec/env_printer.rb +11 -12
  39. data/lib/inspec/errors.rb +0 -4
  40. data/lib/inspec/exceptions.rb +0 -1
  41. data/lib/inspec/expect.rb +5 -8
  42. data/lib/inspec/fetcher.rb +7 -10
  43. data/lib/inspec/file_provider.rb +24 -24
  44. data/lib/inspec/formatters.rb +3 -3
  45. data/lib/inspec/formatters/base.rb +8 -8
  46. data/lib/inspec/globals.rb +2 -2
  47. data/lib/inspec/impact.rb +5 -7
  48. data/lib/inspec/input_registry.rb +84 -33
  49. data/lib/inspec/library_eval_context.rb +3 -6
  50. data/lib/inspec/log.rb +1 -5
  51. data/lib/inspec/metadata.rb +17 -16
  52. data/lib/inspec/method_source.rb +5 -9
  53. data/lib/inspec/objects.rb +10 -12
  54. data/lib/inspec/objects/control.rb +7 -9
  55. data/lib/inspec/objects/describe.rb +9 -11
  56. data/lib/inspec/objects/each_loop.rb +1 -3
  57. data/lib/inspec/objects/input.rb +24 -26
  58. data/lib/inspec/objects/list.rb +4 -6
  59. data/lib/inspec/objects/or_test.rb +2 -4
  60. data/lib/inspec/objects/ruby_helper.rb +3 -5
  61. data/lib/inspec/objects/tag.rb +0 -2
  62. data/lib/inspec/objects/test.rb +9 -11
  63. data/lib/inspec/objects/value.rb +3 -5
  64. data/lib/inspec/plugin/v1.rb +2 -2
  65. data/lib/inspec/plugin/v1/plugin_types/cli.rb +1 -5
  66. data/lib/inspec/plugin/v1/plugin_types/fetcher.rb +2 -5
  67. data/lib/inspec/plugin/v1/plugin_types/resource.rb +4 -6
  68. data/lib/inspec/plugin/v1/plugin_types/secret.rb +1 -5
  69. data/lib/inspec/plugin/v1/plugin_types/source_reader.rb +1 -5
  70. data/lib/inspec/plugin/v1/plugins.rb +15 -19
  71. data/lib/inspec/plugin/v1/registry.rb +0 -4
  72. data/lib/inspec/plugin/v2.rb +8 -8
  73. data/lib/inspec/plugin/v2/activator.rb +1 -1
  74. data/lib/inspec/plugin/v2/config_file.rb +6 -6
  75. data/lib/inspec/plugin/v2/filter.rb +13 -13
  76. data/lib/inspec/plugin/v2/installer.rb +36 -24
  77. data/lib/inspec/plugin/v2/loader.rb +28 -28
  78. data/lib/inspec/plugin/v2/plugin_base.rb +15 -2
  79. data/lib/inspec/plugin/v2/plugin_types/cli.rb +5 -5
  80. data/lib/inspec/plugin/v2/plugin_types/input.rb +34 -0
  81. data/lib/inspec/plugin/v2/plugin_types/mock.rb +1 -1
  82. data/lib/inspec/plugin/v2/registry.rb +7 -7
  83. data/lib/inspec/polyfill.rb +0 -3
  84. data/lib/inspec/profile.rb +55 -63
  85. data/lib/inspec/profile_context.rb +27 -30
  86. data/lib/inspec/profile_vendor.rb +6 -9
  87. data/lib/inspec/reporters.rb +24 -24
  88. data/lib/inspec/reporters/automate.rb +17 -19
  89. data/lib/inspec/reporters/base.rb +1 -1
  90. data/lib/inspec/reporters/cli.rb +88 -91
  91. data/lib/inspec/reporters/json.rb +2 -4
  92. data/lib/inspec/reporters/json_automate.rb +1 -3
  93. data/lib/inspec/reporters/json_min.rb +1 -3
  94. data/lib/inspec/reporters/junit.rb +26 -28
  95. data/lib/inspec/reporters/yaml.rb +1 -3
  96. data/lib/inspec/require_loader.rb +0 -4
  97. data/lib/inspec/resource.rb +4 -125
  98. data/lib/inspec/resources.rb +121 -0
  99. data/lib/{resources → inspec/resources}/aide_conf.rb +24 -25
  100. data/lib/{resources → inspec/resources}/apache.rb +13 -14
  101. data/lib/{resources → inspec/resources}/apache_conf.rb +16 -17
  102. data/lib/{resources → inspec/resources}/apt.rb +17 -17
  103. data/lib/{resources → inspec/resources}/audit_policy.rb +7 -6
  104. data/lib/{resources → inspec/resources}/auditd.rb +62 -64
  105. data/lib/{resources → inspec/resources}/auditd_conf.rb +7 -8
  106. data/lib/{resources → inspec/resources}/bash.rb +6 -8
  107. data/lib/{resources → inspec/resources}/bond.rb +15 -14
  108. data/lib/{resources → inspec/resources}/bridge.rb +8 -8
  109. data/lib/{resources → inspec/resources}/chocolatey_package.rb +10 -8
  110. data/lib/{resources → inspec/resources}/command.rb +11 -10
  111. data/lib/{resources → inspec/resources}/cpan.rb +12 -12
  112. data/lib/{resources → inspec/resources}/cran.rb +9 -9
  113. data/lib/{resources → inspec/resources}/crontab.rb +47 -48
  114. data/lib/{resources → inspec/resources}/csv.rb +5 -5
  115. data/lib/{resources → inspec/resources}/dh_params.rb +5 -7
  116. data/lib/{resources → inspec/resources}/directory.rb +5 -7
  117. data/lib/{resources → inspec/resources}/docker.rb +63 -63
  118. data/lib/{resources → inspec/resources}/docker_container.rb +6 -6
  119. data/lib/{resources → inspec/resources}/docker_image.rb +9 -9
  120. data/lib/{resources → inspec/resources}/docker_object.rb +8 -13
  121. data/lib/{resources → inspec/resources}/docker_plugin.rb +6 -6
  122. data/lib/{resources → inspec/resources}/docker_service.rb +7 -7
  123. data/lib/{resources → inspec/resources}/elasticsearch.rb +40 -42
  124. data/lib/{resources → inspec/resources}/etc_fstab.rb +23 -24
  125. data/lib/{resources → inspec/resources}/etc_group.rb +26 -27
  126. data/lib/{resources → inspec/resources}/etc_hosts.rb +11 -13
  127. data/lib/{resources → inspec/resources}/etc_hosts_allow_deny.rb +25 -27
  128. data/lib/{resources → inspec/resources}/file.rb +80 -79
  129. data/lib/{resources → inspec/resources}/filesystem.rb +20 -15
  130. data/lib/{resources → inspec/resources}/firewalld.rb +26 -26
  131. data/lib/{resources → inspec/resources}/gem.rb +12 -12
  132. data/lib/{resources → inspec/resources}/groups.rb +28 -27
  133. data/lib/{resources → inspec/resources}/grub_conf.rb +46 -48
  134. data/lib/{resources → inspec/resources}/host.rb +31 -29
  135. data/lib/{resources → inspec/resources}/http.rb +24 -24
  136. data/lib/{resources → inspec/resources}/iis_app.rb +6 -7
  137. data/lib/{resources → inspec/resources}/iis_app_pool.rb +21 -19
  138. data/lib/{resources → inspec/resources}/iis_site.rb +17 -15
  139. data/lib/{resources → inspec/resources}/inetd_conf.rb +9 -10
  140. data/lib/{resources → inspec/resources}/ini.rb +7 -8
  141. data/lib/{resources → inspec/resources}/interface.rb +30 -30
  142. data/lib/{resources → inspec/resources}/iptables.rb +8 -8
  143. data/lib/{resources → inspec/resources}/json.rb +8 -10
  144. data/lib/{resources → inspec/resources}/kernel_module.rb +15 -15
  145. data/lib/{resources → inspec/resources}/kernel_parameter.rb +8 -8
  146. data/lib/{resources → inspec/resources}/key_rsa.rb +8 -10
  147. data/lib/{resources → inspec/resources}/ksh.rb +6 -8
  148. data/lib/{resources → inspec/resources}/limits_conf.rb +8 -9
  149. data/lib/{resources/login_def.rb → inspec/resources/login_defs.rb} +9 -10
  150. data/lib/{resources → inspec/resources}/mount.rb +6 -8
  151. data/lib/{resources → inspec/resources}/mssql_session.rb +16 -18
  152. data/lib/inspec/resources/mysql.rb +81 -0
  153. data/lib/{resources → inspec/resources}/mysql_conf.rb +13 -14
  154. data/lib/{resources → inspec/resources}/mysql_session.rb +16 -16
  155. data/lib/{resources → inspec/resources}/nginx.rb +16 -17
  156. data/lib/{resources → inspec/resources}/nginx_conf.rb +26 -27
  157. data/lib/{resources → inspec/resources}/npm.rb +9 -10
  158. data/lib/{resources → inspec/resources}/ntp_conf.rb +9 -10
  159. data/lib/{resources → inspec/resources}/oneget.rb +8 -8
  160. data/lib/{resources → inspec/resources}/oracledb_session.rb +33 -34
  161. data/lib/{resources → inspec/resources}/os.rb +6 -8
  162. data/lib/{resources → inspec/resources}/os_env.rb +11 -12
  163. data/lib/{resources → inspec/resources}/package.rb +66 -65
  164. data/lib/{resources → inspec/resources}/packages.rb +13 -13
  165. data/lib/{resources → inspec/resources}/parse_config.rb +8 -8
  166. data/lib/{resources → inspec/resources}/passwd.rb +18 -19
  167. data/lib/{resources → inspec/resources}/pip.rb +19 -19
  168. data/lib/{resources → inspec/resources}/platform.rb +9 -11
  169. data/lib/{resources → inspec/resources}/port.rb +134 -136
  170. data/lib/{resources → inspec/resources}/postgres.rb +40 -32
  171. data/lib/{resources → inspec/resources}/postgres_conf.rb +17 -17
  172. data/lib/{resources → inspec/resources}/postgres_hba_conf.rb +21 -23
  173. data/lib/{resources → inspec/resources}/postgres_ident_conf.rb +12 -14
  174. data/lib/{resources → inspec/resources}/postgres_session.rb +8 -9
  175. data/lib/{resources → inspec/resources}/powershell.rb +17 -13
  176. data/lib/{resources → inspec/resources}/processes.rb +29 -29
  177. data/lib/{resources/rabbitmq_conf.rb → inspec/resources/rabbitmq_config.rb} +10 -11
  178. data/lib/{resources → inspec/resources}/registry_key.rb +14 -14
  179. data/lib/inspec/resources/script.rb +1 -0
  180. data/lib/{resources → inspec/resources}/security_identifier.rb +11 -10
  181. data/lib/{resources → inspec/resources}/security_policy.rb +59 -58
  182. data/lib/{resources → inspec/resources}/service.rb +74 -75
  183. data/lib/{resources → inspec/resources}/shadow.rb +44 -45
  184. data/lib/{resources/ssh_conf.rb → inspec/resources/ssh_config.rb} +16 -17
  185. data/lib/{resources → inspec/resources}/ssl.rb +28 -29
  186. data/lib/inspec/resources/sys_info.rb +30 -0
  187. data/lib/{resources → inspec/resources}/toml.rb +5 -7
  188. data/lib/{resources → inspec/resources}/users.rb +65 -65
  189. data/lib/{resources → inspec/resources}/vbscript.rb +8 -9
  190. data/lib/{resources → inspec/resources}/virtualization.rb +60 -62
  191. data/lib/{resources → inspec/resources}/windows_feature.rb +9 -9
  192. data/lib/{resources → inspec/resources}/windows_hotfix.rb +5 -5
  193. data/lib/{resources → inspec/resources}/windows_task.rb +16 -15
  194. data/lib/{resources → inspec/resources}/wmi.rb +7 -8
  195. data/lib/{resources → inspec/resources}/x509_certificate.rb +9 -11
  196. data/lib/{resources/xinetd.rb → inspec/resources/xinetd_conf.rb} +27 -29
  197. data/lib/{resources → inspec/resources}/xml.rb +7 -7
  198. data/lib/{resources → inspec/resources}/yaml.rb +5 -6
  199. data/lib/{resources → inspec/resources}/yum.rb +10 -10
  200. data/lib/{resources → inspec/resources}/zfs_dataset.rb +6 -6
  201. data/lib/{resources → inspec/resources}/zfs_pool.rb +4 -4
  202. data/lib/inspec/rspec_extensions.rb +24 -8
  203. data/lib/inspec/rule.rb +14 -15
  204. data/lib/inspec/runner.rb +28 -28
  205. data/lib/inspec/runner_mock.rb +1 -5
  206. data/lib/inspec/runner_rspec.rb +18 -20
  207. data/lib/inspec/runtime_profile.rb +2 -5
  208. data/lib/inspec/schema.rb +142 -143
  209. data/lib/inspec/secrets.rb +3 -7
  210. data/lib/inspec/secrets/yaml.rb +3 -5
  211. data/lib/inspec/shell.rb +11 -15
  212. data/lib/inspec/shell_detector.rb +6 -7
  213. data/lib/inspec/source_reader.rb +4 -8
  214. data/lib/inspec/ui.rb +33 -39
  215. data/lib/inspec/ui_table_helper.rb +12 -0
  216. data/lib/{utils → inspec/utils}/command_wrapper.rb +4 -8
  217. data/lib/{utils → inspec/utils}/convert.rb +0 -4
  218. data/lib/{utils → inspec/utils}/database_helpers.rb +4 -8
  219. data/lib/inspec/utils/deprecation.rb +6 -0
  220. data/lib/{utils → inspec/utils}/deprecation/config_file.rb +19 -19
  221. data/lib/{utils → inspec/utils}/deprecation/deprecator.rb +12 -12
  222. data/lib/{utils → inspec/utils}/deprecation/errors.rb +1 -1
  223. data/lib/{utils → inspec/utils}/deprecation/global_method.rb +2 -2
  224. data/lib/{utils → inspec/utils}/enumerable_delegation.rb +0 -2
  225. data/lib/{utils → inspec/utils}/erlang_parser.rb +61 -65
  226. data/lib/{utils → inspec/utils}/file_reader.rb +1 -2
  227. data/lib/{utils → inspec/utils}/filter.rb +30 -33
  228. data/lib/{utils → inspec/utils}/filter_array.rb +0 -2
  229. data/lib/{utils → inspec/utils}/find_files.rb +9 -12
  230. data/lib/{utils → inspec/utils}/hash.rb +1 -5
  231. data/lib/inspec/utils/json_log.rb +15 -0
  232. data/lib/inspec/utils/latest_version.rb +13 -0
  233. data/lib/{utils → inspec/utils}/modulator.rb +0 -3
  234. data/lib/{utils → inspec/utils}/nginx_parser.rb +31 -35
  235. data/lib/{utils → inspec/utils}/object_traversal.rb +0 -3
  236. data/lib/{utils → inspec/utils}/parser.rb +45 -45
  237. data/lib/{utils → inspec/utils}/pkey_reader.rb +4 -2
  238. data/lib/{utils → inspec/utils}/simpleconfig.rb +8 -10
  239. data/lib/{utils → inspec/utils}/spdx.rb +1 -4
  240. data/lib/{utils → inspec/utils}/spdx.txt +0 -0
  241. data/lib/inspec/utils/telemetry.rb +3 -3
  242. data/lib/inspec/utils/telemetry/collector.rb +30 -9
  243. data/lib/inspec/utils/telemetry/data_series.rb +3 -1
  244. data/lib/inspec/utils/telemetry/global_methods.rb +1 -1
  245. data/lib/inspec/version.rb +1 -1
  246. data/lib/matchers/matchers.rb +22 -25
  247. data/lib/plugins/inspec-artifact/lib/inspec-artifact.rb +1 -1
  248. data/lib/plugins/inspec-artifact/lib/inspec-artifact/base.rb +52 -45
  249. data/lib/plugins/inspec-artifact/lib/inspec-artifact/cli.rb +18 -16
  250. data/lib/plugins/inspec-artifact/test/functional/inspec_artifact_test.rb +12 -11
  251. data/lib/plugins/inspec-compliance/lib/inspec-compliance.rb +1 -1
  252. data/lib/plugins/inspec-compliance/lib/inspec-compliance/api.rb +73 -73
  253. data/lib/plugins/inspec-compliance/lib/inspec-compliance/api/login.rb +66 -62
  254. data/lib/plugins/inspec-compliance/lib/inspec-compliance/cli.rb +59 -57
  255. data/lib/plugins/inspec-compliance/lib/inspec-compliance/configuration.rb +11 -11
  256. data/lib/plugins/inspec-compliance/lib/inspec-compliance/http.rb +20 -22
  257. data/lib/plugins/inspec-compliance/lib/inspec-compliance/support.rb +2 -4
  258. data/lib/plugins/inspec-compliance/lib/inspec-compliance/target.rb +30 -27
  259. data/lib/plugins/inspec-compliance/test/functional/inspec_compliance_test.rb +12 -14
  260. data/lib/plugins/inspec-compliance/test/integration/default/cli.rb +39 -41
  261. data/lib/plugins/inspec-compliance/test/unit/api/login_test.rb +64 -64
  262. data/lib/plugins/inspec-compliance/test/unit/api_test.rb +157 -156
  263. data/lib/plugins/inspec-compliance/test/unit/target_test.rb +85 -85
  264. data/lib/plugins/inspec-habitat/Berksfile +2 -2
  265. data/lib/plugins/inspec-habitat/lib/inspec-habitat.rb +1 -1
  266. data/lib/plugins/inspec-habitat/lib/inspec-habitat/cli.rb +15 -13
  267. data/lib/plugins/inspec-habitat/lib/inspec-habitat/profile.rb +64 -63
  268. data/lib/plugins/inspec-habitat/templates/habitat/hooks/run.erb +3 -3
  269. data/lib/plugins/inspec-habitat/templates/habitat/plan.sh.erb +11 -11
  270. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/Berksfile +1 -1
  271. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/metadata.rb +8 -8
  272. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/recipes/default.rb +17 -17
  273. data/lib/plugins/inspec-habitat/test/functional/inspec_habitat_test.rb +9 -8
  274. data/lib/plugins/inspec-habitat/test/integration/default/inspec_habitat/controls/inspec_habitat.rb +14 -14
  275. data/lib/plugins/inspec-habitat/test/support/example_profile/controls/example.rb +4 -4
  276. data/lib/plugins/inspec-habitat/test/unit/profile_test.rb +42 -41
  277. data/lib/plugins/inspec-init/lib/inspec-init.rb +1 -1
  278. data/lib/plugins/inspec-init/lib/inspec-init/cli.rb +6 -8
  279. data/lib/plugins/inspec-init/lib/inspec-init/cli_plugin.rb +72 -74
  280. data/lib/plugins/inspec-init/lib/inspec-init/cli_profile.rb +9 -11
  281. data/lib/plugins/inspec-init/lib/inspec-init/renderer.rb +4 -4
  282. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/Gemfile +0 -1
  283. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/inspec-plugin-template.gemspec +0 -2
  284. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template.rb +0 -2
  285. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/cli_command.rb +0 -2
  286. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/plugin.rb +0 -2
  287. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/version.rb +0 -2
  288. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/functional/inspec_plugin_template_test.rb +5 -5
  289. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/helper.rb +1 -3
  290. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/cli_args_test.rb +2 -2
  291. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/plugin_def_test.rb +2 -2
  292. data/lib/plugins/inspec-init/templates/profiles/aws/controls/example.rb +10 -11
  293. data/lib/plugins/inspec-init/templates/profiles/azure/controls/example.rb +4 -5
  294. data/lib/plugins/inspec-init/templates/profiles/gcp/controls/example.rb +10 -11
  295. data/lib/plugins/inspec-init/templates/profiles/os/controls/example.rb +6 -7
  296. data/lib/plugins/inspec-init/test/functional/inspec_init_plugin_test.rb +51 -50
  297. data/lib/plugins/inspec-init/test/functional/inspec_init_profile_test.rb +35 -33
  298. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli.rb +1 -2
  299. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb +72 -70
  300. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/plugin.rb +1 -1
  301. data/lib/plugins/inspec-plugin-manager-cli/test/fixtures/plugins/wrong-name/lib/wrong-name.rb +1 -1
  302. data/lib/plugins/inspec-plugin-manager-cli/test/functional/inspec-plugin_test.rb +281 -271
  303. data/lib/plugins/inspec-plugin-manager-cli/test/unit/cli_args_test.rb +41 -41
  304. data/lib/plugins/inspec-plugin-manager-cli/test/unit/plugin_def_test.rb +25 -6
  305. data/lib/plugins/shared/core_plugin_test_helper.rb +43 -38
  306. data/lib/resource_support/aws.rb +67 -67
  307. data/lib/resource_support/aws/aws_plural_resource_mixin.rb +4 -1
  308. data/lib/resource_support/aws/aws_resource_mixin.rb +4 -3
  309. data/lib/resource_support/aws/aws_singular_resource_mixin.rb +4 -1
  310. data/lib/resources/aws/aws_billing_report.rb +15 -8
  311. data/lib/resources/aws/aws_billing_reports.rb +10 -7
  312. data/lib/resources/aws/aws_cloudtrail_trail.rb +9 -5
  313. data/lib/resources/aws/aws_cloudtrail_trails.rb +9 -5
  314. data/lib/resources/aws/aws_cloudwatch_alarm.rb +9 -5
  315. data/lib/resources/aws/aws_cloudwatch_log_metric_filter.rb +12 -8
  316. data/lib/resources/aws/aws_config_delivery_channel.rb +13 -9
  317. data/lib/resources/aws/aws_config_recorder.rb +10 -6
  318. data/lib/resources/aws/aws_ebs_volume.rb +12 -8
  319. data/lib/resources/aws/aws_ebs_volumes.rb +9 -5
  320. data/lib/resources/aws/aws_ec2_instance.rb +14 -11
  321. data/lib/resources/aws/aws_ec2_instances.rb +9 -5
  322. data/lib/resources/aws/aws_ecs_cluster.rb +11 -7
  323. data/lib/resources/aws/aws_eks_cluster.rb +13 -9
  324. data/lib/resources/aws/aws_elb.rb +9 -5
  325. data/lib/resources/aws/aws_elbs.rb +9 -5
  326. data/lib/resources/aws/aws_flow_log.rb +17 -13
  327. data/lib/resources/aws/aws_iam_access_key.rb +15 -11
  328. data/lib/resources/aws/aws_iam_access_keys.rb +19 -15
  329. data/lib/resources/aws/aws_iam_group.rb +9 -5
  330. data/lib/resources/aws/aws_iam_groups.rb +9 -5
  331. data/lib/resources/aws/aws_iam_password_policy.rb +13 -10
  332. data/lib/resources/aws/aws_iam_policies.rb +9 -5
  333. data/lib/resources/aws/aws_iam_policy.rb +16 -12
  334. data/lib/resources/aws/aws_iam_role.rb +9 -5
  335. data/lib/resources/aws/aws_iam_root_user.rb +12 -8
  336. data/lib/resources/aws/aws_iam_user.rb +12 -12
  337. data/lib/resources/aws/aws_iam_users.rb +10 -10
  338. data/lib/resources/aws/aws_kms_key.rb +12 -8
  339. data/lib/resources/aws/aws_kms_keys.rb +9 -5
  340. data/lib/resources/aws/aws_rds_instance.rb +11 -8
  341. data/lib/resources/aws/aws_route_table.rb +11 -7
  342. data/lib/resources/aws/aws_route_tables.rb +10 -6
  343. data/lib/resources/aws/aws_s3_bucket.rb +14 -11
  344. data/lib/resources/aws/aws_s3_bucket_object.rb +12 -9
  345. data/lib/resources/aws/aws_s3_buckets.rb +9 -7
  346. data/lib/resources/aws/aws_security_group.rb +16 -12
  347. data/lib/resources/aws/aws_security_groups.rb +12 -8
  348. data/lib/resources/aws/aws_sns_subscription.rb +15 -11
  349. data/lib/resources/aws/aws_sns_topic.rb +10 -6
  350. data/lib/resources/aws/aws_sns_topics.rb +9 -5
  351. data/lib/resources/aws/aws_sqs_queue.rb +18 -14
  352. data/lib/resources/aws/aws_subnet.rb +11 -7
  353. data/lib/resources/aws/aws_subnets.rb +9 -5
  354. data/lib/resources/aws/aws_vpc.rb +10 -6
  355. data/lib/resources/aws/aws_vpcs.rb +9 -5
  356. data/lib/resources/azure/azure_backend.rb +20 -18
  357. data/lib/resources/azure/azure_generic_resource.rb +13 -15
  358. data/lib/resources/azure/azure_resource_group.rb +17 -19
  359. data/lib/resources/azure/azure_virtual_machine.rb +6 -8
  360. data/lib/resources/azure/azure_virtual_machine_data_disk.rb +6 -8
  361. data/lib/source_readers/flat.rb +6 -10
  362. data/lib/source_readers/inspec.rb +8 -12
  363. metadata +141 -142
  364. data/lib/resources/mysql.rb +0 -82
  365. data/lib/resources/sys_info.rb +0 -28
  366. data/lib/utils/deprecation.rb +0 -6
  367. data/lib/utils/json_log.rb +0 -18
  368. data/lib/utils/latest_version.rb +0 -22
@@ -4,7 +4,7 @@ module InspecPlugins
4
4
  plugin_name :'inspec-init'
5
5
 
6
6
  cli_command :init do
7
- require_relative 'inspec-init/cli'
7
+ require_relative "inspec-init/cli"
8
8
  InspecPlugins::Init::CLI
9
9
  end
10
10
  end
@@ -1,17 +1,15 @@
1
- # encoding: utf-8
2
-
3
- require 'pathname'
4
- require_relative 'renderer'
1
+ require "pathname"
2
+ require_relative "renderer"
5
3
 
6
4
  module InspecPlugins
7
5
  module Init
8
6
  class CLI < Inspec.plugin(2, :cli_command)
9
- subcommand_desc 'init SUBCOMMAND', 'Generate InSpec code'
7
+ subcommand_desc "init SUBCOMMAND", "Generate InSpec code"
10
8
 
11
- TEMPLATES_PATH = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'templates'))
9
+ TEMPLATES_PATH = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "templates"))
12
10
 
13
- require_relative 'cli_profile'
14
- require_relative 'cli_plugin'
11
+ require_relative "cli_profile"
12
+ require_relative "cli_plugin"
15
13
  end
16
14
  end
17
15
  end
@@ -1,6 +1,4 @@
1
- # encoding: utf-8
2
-
3
- require_relative 'renderer'
1
+ require_relative "renderer"
4
2
 
5
3
  module InspecPlugins
6
4
  module Init
@@ -8,28 +6,28 @@ module InspecPlugins
8
6
  #-------------------------------------------------------------------#
9
7
  # inspec init plugin
10
8
  #-------------------------------------------------------------------#
11
- desc 'PLUGIN_NAME [options]', 'Generates an InSpec plugin, which can extend the functionality of InSpec itself.'
9
+ desc "plugin PLUGIN_NAME [options]", "Generates an InSpec plugin, which can extend the functionality of InSpec itself."
12
10
  # General options
13
- option :prompt, type: :boolean, default: true, desc: 'Interactively prompt for information to put in your generated plugin.'
14
- option :detail, type: :string, default: 'full', desc: "How detailed of a plugin to generate. 'full' is a normal full gem with tests; 'core' has tests but no gemspec; 'test-fixture' is stripped down for a test fixture."
11
+ option :prompt, type: :boolean, default: true, desc: "Interactively prompt for information to put in your generated plugin."
12
+ option :detail, type: :string, default: "full", desc: "How detailed of a plugin to generate. 'full' is a normal full gem with tests; 'core' has tests but no gemspec; 'test-fixture' is stripped down for a test fixture."
15
13
 
16
14
  # Templating vars
17
- option :author_email, type: :string, default: 'you@example.com', desc: 'Author Email for gemspec'
18
- option :author_name, type: :string, default: 'Your Name', desc: 'Author Name for gemspec'
19
- option :description, type: :string, default: '', desc: 'Multi-line description of the plugin'
20
- option :summary, type: :string, default: 'A plugin with a default summary', desc: 'One-line summary of your plugin'
21
- option :license_name, type: :string, default: 'Apache-2.0', desc: 'The name of a license'
22
- option :hook, type: :array, default: ['cli_command:my_command'], desc: 'A list of plugin hooks, in the form type1:name1, type2:name2, etc'
15
+ option :author_email, type: :string, default: "you@example.com", desc: "Author Email for gemspec"
16
+ option :author_name, type: :string, default: "Your Name", desc: "Author Name for gemspec"
17
+ option :description, type: :string, default: "", desc: "Multi-line description of the plugin"
18
+ option :summary, type: :string, default: "A plugin with a default summary", desc: "One-line summary of your plugin"
19
+ option :license_name, type: :string, default: "Apache-2.0", desc: "The name of a license"
20
+ option :hook, type: :array, default: ["cli_command:my_command"], desc: "A list of plugin hooks, in the form type1:name1, type2:name2, etc"
23
21
  # These vars have calculated defaults
24
- option :homepage, type: :string, default: nil, desc: 'A URL for your project, often a GitHub link'
25
- option :module_name, type: :string, default: nil, desc: 'Module Name for your plugin package. Will change plugin name to CamelCase by default.'
26
- option :license_text, type: :string, default: '', hide: true
27
- option :plugin_name, type: :string, default: '', hide: true # This is here to give a uniform interface
28
- option :copyright, type: :string, default: nil, desc: 'A copyright statement, to be added to LICENSE'
22
+ option :homepage, type: :string, default: nil, desc: "A URL for your project, often a GitHub link"
23
+ option :module_name, type: :string, default: nil, desc: "Module Name for your plugin package. Will change plugin name to CamelCase by default."
24
+ option :license_text, type: :string, default: "", hide: true
25
+ option :plugin_name, type: :string, default: "", hide: true # This is here to give a uniform interface
26
+ option :copyright, type: :string, default: nil, desc: "A copyright statement, to be added to LICENSE"
29
27
 
30
28
  def plugin(plugin_name)
31
29
  plugin_type = determine_plugin_type(plugin_name)
32
- snake_case = plugin_name.tr('-', '_')
30
+ snake_case = plugin_name.tr("-", "_")
33
31
 
34
32
  template_vars = {
35
33
  name: plugin_name,
@@ -37,7 +35,7 @@ module InspecPlugins
37
35
  snake_case: snake_case,
38
36
  }.merge(plugin_vars_from_opts)
39
37
 
40
- template_path = File.join('plugins', plugin_type + '-plugin-template')
38
+ template_path = File.join("plugins", plugin_type + "-plugin-template")
41
39
 
42
40
  render_opts = {
43
41
  templates_path: TEMPLATES_PATH,
@@ -47,7 +45,7 @@ module InspecPlugins
47
45
  }
48
46
  renderer = InspecPlugins::Init::Renderer.new(ui, render_opts)
49
47
 
50
- renderer.render_with_values(template_path, plugin_type + ' plugin', template_vars)
48
+ renderer.render_with_values(template_path, plugin_type + " plugin", template_vars)
51
49
  end
52
50
 
53
51
  private
@@ -55,14 +53,14 @@ module InspecPlugins
55
53
  def determine_plugin_type(plugin_name)
56
54
  plugin_type = plugin_name.match(/^(inspec|train)\-/)
57
55
  unless plugin_type
58
- ui.error('Plugin names must begin with either ' + ui.emphasis('inspec') + ' or ' + ui.emphasis('train') + ' - saw ' + ui.emphasis(plugin_name))
56
+ ui.error("Plugin names must begin with either " + ui.emphasis("inspec") + " or " + ui.emphasis("train") + " - saw " + ui.emphasis(plugin_name))
59
57
  ui.exit(:usage_error)
60
58
  end
61
59
  options[:plugin_name] = plugin_name
62
60
 
63
61
  plugin_type = plugin_type[1]
64
- unless plugin_type == 'inspec'
65
- ui.error('Sorry, only InSpec (inspec-) plugins are supported at this time: Train (train-) support is not implemented yet.')
62
+ unless plugin_type == "inspec"
63
+ ui.error("Sorry, only InSpec (inspec-) plugins are supported at this time: Train (train-) support is not implemented yet.")
66
64
  ui.exit(:usage_error)
67
65
  end
68
66
  plugin_type
@@ -70,19 +68,19 @@ module InspecPlugins
70
68
 
71
69
  def make_rename_map(_plugin_type, plugin_name, snake_case)
72
70
  {
73
- 'inspec-plugin-template.gemspec' => plugin_name + '.gemspec',
74
- File.join('lib', 'inspec-plugin-template') => File.join('lib', plugin_name),
75
- File.join('lib', 'inspec-plugin-template.rb') => File.join('lib', plugin_name + '.rb'),
76
- File.join('lib', 'inspec-plugin-template', 'cli_command.rb') => File.join('lib', plugin_name, 'cli_command.rb'),
77
- File.join('lib', 'inspec-plugin-template', 'plugin.rb') => File.join('lib', plugin_name, 'plugin.rb'),
78
- File.join('lib', 'inspec-plugin-template', 'version.rb') => File.join('lib', plugin_name, 'version.rb'),
79
- File.join('test', 'functional', 'inspec_plugin_template_test.rb') => File.join('test', 'functional', snake_case + '_test.rb'),
71
+ "inspec-plugin-template.gemspec" => plugin_name + ".gemspec",
72
+ File.join("lib", "inspec-plugin-template") => File.join("lib", plugin_name),
73
+ File.join("lib", "inspec-plugin-template.rb") => File.join("lib", plugin_name + ".rb"),
74
+ File.join("lib", "inspec-plugin-template", "cli_command.rb") => File.join("lib", plugin_name, "cli_command.rb"),
75
+ File.join("lib", "inspec-plugin-template", "plugin.rb") => File.join("lib", plugin_name, "plugin.rb"),
76
+ File.join("lib", "inspec-plugin-template", "version.rb") => File.join("lib", plugin_name, "version.rb"),
77
+ File.join("test", "functional", "inspec_plugin_template_test.rb") => File.join("test", "functional", snake_case + "_test.rb"),
80
78
  }
81
79
  end
82
80
 
83
81
  def plugin_vars_from_opts
84
82
  # Set dynamic default - module name is straightforward. Copyright, homepage, and license_text depend on other prompted vars.
85
- options[:module_name] ||= options[:plugin_name].sub(/^(inspec|train)\-/, '').split('-').map(&:capitalize).join('')
83
+ options[:module_name] ||= options[:plugin_name].sub(/^(inspec|train)\-/, "").split("-").map(&:capitalize).join("")
86
84
 
87
85
  if options[:prompt] && ui.interactive?
88
86
  vars = options.dup.merge(vars_from_prompts)
@@ -90,15 +88,15 @@ module InspecPlugins
90
88
  vars = options.dup.merge(vars_from_defaults)
91
89
 
92
90
  else
93
- ui.error('You requested interactive prompting for the template variables, but this does not seem to be an interactive terminal.')
91
+ ui.error("You requested interactive prompting for the template variables, but this does not seem to be an interactive terminal.")
94
92
  ui.exit(:usage_error)
95
93
  end
96
94
  vars.merge(parse_hook_option(options[:hook]))
97
95
  end
98
96
 
99
97
  def vars_from_defaults
100
- options[:copyright] ||= 'Copyright © ' + Date.today.year.to_s + ' ' + options[:author_name]
101
- options[:homepage] ||= 'https://github.com/' + options[:author_email].split('@').first + '/' + options[:plugin_name]
98
+ options[:copyright] ||= "Copyright © " + Date.today.year.to_s + " " + options[:author_name]
99
+ options[:homepage] ||= "https://github.com/" + options[:author_email].split("@").first + "/" + options[:plugin_name]
102
100
  options[:license_text] = fetch_license_text(options[:license_name])
103
101
  options
104
102
  end
@@ -110,17 +108,17 @@ module InspecPlugins
110
108
  summary: {},
111
109
  description: { mode: :multiline },
112
110
  module_name: {},
113
- copyright: { default_setter: proc { options[:copyright] ||= 'Copyright © ' + Date.today.year.to_s + ' ' + options[:author_name] } },
111
+ copyright: { default_setter: proc { options[:copyright] ||= "Copyright © " + Date.today.year.to_s + " " + options[:author_name] } },
114
112
  license_name: {
115
113
  mode: :select,
116
114
  choices: [
117
- { name: 'Apache 2.0', value: 'Apache-2.0', default: true },
118
- { name: 'Modified BSD', value: 'BSD-3-Clause' },
119
- { name: 'Proprietary (Closed Source)', value: 'Proprietary' },
120
- { name: 'Other (edit LICENSE yourself)', value: 'Other' },
115
+ { name: "Apache 2.0", value: "Apache-2.0", default: true },
116
+ { name: "Modified BSD", value: "BSD-3-Clause" },
117
+ { name: "Proprietary (Closed Source)", value: "Proprietary" },
118
+ { name: "Other (edit LICENSE yourself)", value: "Other" },
121
119
  ],
122
120
  },
123
- homepage: { default_setter: proc { options[:homepage] ||= 'https://github.com/' + options[:author_email].split('@').first + '/' + options[:plugin_name] } }
121
+ homepage: { default_setter: proc { options[:homepage] ||= "https://github.com/" + options[:author_email].split("@").first + "/" + options[:plugin_name] } },
124
122
  # TODO: Handle hooks, when we ever have more than one type of plugin
125
123
  }
126
124
 
@@ -132,7 +130,7 @@ module InspecPlugins
132
130
  end
133
131
 
134
132
  def prompt_for_options(option_order) # rubocop: disable Metrics/AbcSize
135
- option_defs = self.class.all_commands['plugin'].options
133
+ option_defs = self.class.all_commands["plugin"].options
136
134
 
137
135
  option_order.each do |opt_name, prompt_options|
138
136
  opt_def = option_defs[opt_name]
@@ -140,15 +138,15 @@ module InspecPlugins
140
138
 
141
139
  case prompt_options[:mode]
142
140
  when :select
143
- options[opt_name] = ui.prompt.select('Choose ' + opt_def.description + ':', prompt_options[:choices])
144
- if opt_name == :license_name && options[opt_name] == 'Other'
145
- ui.plain_line 'OK, be sure to update the ' + ui.emphasis('LICENSE') + ' file with your license details.'
141
+ options[opt_name] = ui.prompt.select("Choose " + opt_def.description + ":", prompt_options[:choices])
142
+ if opt_name == :license_name && options[opt_name] == "Other"
143
+ ui.plain_line "OK, be sure to update the " + ui.emphasis("LICENSE") + " file with your license details."
146
144
  end
147
145
  when :multiline
148
- options[opt_name] = ui.prompt.multiline('Enter ' + opt_def.description + '. Press Control-D to end.', default: options[opt_name])
146
+ options[opt_name] = ui.prompt.multiline("Enter " + opt_def.description + ". Press Control-D to end.", default: options[opt_name])
149
147
  else
150
148
  # Assume plain ask
151
- options[opt_name] = ui.prompt.ask('Enter ' + opt_def.description + ':', default: options[opt_name])
149
+ options[opt_name] = ui.prompt.ask("Enter " + opt_def.description + ":", default: options[opt_name])
152
150
  end
153
151
  end
154
152
  end
@@ -156,11 +154,11 @@ module InspecPlugins
156
154
  def parse_hook_option(raw_option)
157
155
  hooks_by_type = {}
158
156
  raw_option.each do |entry|
159
- parts = entry.split(':')
157
+ parts = entry.split(":")
160
158
  type = parts.first.to_sym
161
159
  name = parts.last
162
160
  if hooks_by_type.key?(type)
163
- ui.error 'The InSpec plugin generator can currently only generate one hook of each type'
161
+ ui.error "The InSpec plugin generator can currently only generate one hook of each type"
164
162
  ui.exit(:usage_error)
165
163
  end
166
164
  hooks_by_type[type] = name
@@ -168,19 +166,19 @@ module InspecPlugins
168
166
 
169
167
  vars = { hooks: hooks_by_type }
170
168
  if hooks_by_type.key?(:cli_command)
171
- vars[:command_name_dashes] = hooks_by_type[:cli_command].tr('_', '-')
172
- vars[:command_name_snake] = hooks_by_type[:cli_command].tr('-', '_')
169
+ vars[:command_name_dashes] = hooks_by_type[:cli_command].tr("_", "-")
170
+ vars[:command_name_snake] = hooks_by_type[:cli_command].tr("-", "_")
173
171
  end
174
172
  vars
175
173
  end
176
174
 
177
175
  def fetch_license_text(license_name)
178
176
  case license_name
179
- when 'Proprietary'
177
+ when "Proprietary"
180
178
  <<~EOL
181
179
  Proprietary software. All Rights Reserved.
182
180
  EOL
183
- when 'Apache-2.0'
181
+ when "Apache-2.0"
184
182
  <<~EOL
185
183
  Licensed under the Apache License, Version 2.0 (the "License");
186
184
  you may not use this file except in compliance with the License.
@@ -193,7 +191,7 @@ module InspecPlugins
193
191
  limitations under the License.
194
192
 
195
193
  EOL
196
- when 'BSD-3-Clause'
194
+ when "BSD-3-Clause"
197
195
  <<~EOL
198
196
  Modified BSD License
199
197
  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
@@ -209,31 +207,31 @@ module InspecPlugins
209
207
 
210
208
  def make_skip_list
211
209
  case options[:detail]
212
- when 'full'
210
+ when "full"
213
211
  []
214
- when 'core'
212
+ when "core"
215
213
  [
216
- 'Gemfile',
217
- 'inspec-plugin-template.gemspec',
218
- 'LICENSE',
219
- 'Rakefile',
214
+ "Gemfile",
215
+ "inspec-plugin-template.gemspec",
216
+ "LICENSE",
217
+ "Rakefile",
220
218
  ]
221
- when 'test-fixture'
219
+ when "test-fixture"
222
220
  [
223
- 'Gemfile',
224
- 'inspec-plugin-template.gemspec',
225
- 'LICENSE',
226
- 'Rakefile',
227
- File.join('test', 'fixtures', 'README.md'),
228
- File.join('test', 'fixtures'),
229
- File.join('test', 'functional', 'inspec_plugin_template_test.rb'),
230
- File.join('test', 'functional', 'README.md'),
231
- File.join('test', 'unit', 'cli_args_test.rb'),
232
- File.join('test', 'unit', 'plugin_def_test.rb'),
233
- File.join('test', 'unit', 'README.md'),
234
- File.join('test', 'unit'),
235
- File.join('test', 'helper.rb'),
236
- File.join('test'),
221
+ "Gemfile",
222
+ "inspec-plugin-template.gemspec",
223
+ "LICENSE",
224
+ "Rakefile",
225
+ File.join("test", "fixtures", "README.md"),
226
+ File.join("test", "fixtures"),
227
+ File.join("test", "functional", "inspec_plugin_template_test.rb"),
228
+ File.join("test", "functional", "README.md"),
229
+ File.join("test", "unit", "cli_args_test.rb"),
230
+ File.join("test", "unit", "plugin_def_test.rb"),
231
+ File.join("test", "unit", "README.md"),
232
+ File.join("test", "unit"),
233
+ File.join("test", "helper.rb"),
234
+ File.join("test"),
237
235
  ]
238
236
  else
239
237
  ui.error "Unrecognized value for 'detail': #{options[:detail]} - expected one of full, core, test-fixture"
@@ -1,7 +1,5 @@
1
- # encoding: utf-8
2
-
3
- require 'pathname'
4
- require_relative 'renderer'
1
+ require "pathname"
2
+ require_relative "renderer"
5
3
 
6
4
  module InspecPlugins
7
5
  module Init
@@ -11,8 +9,8 @@ module InspecPlugins
11
9
  #-------------------------------------------------------------------#
12
10
  def self.valid_profile_platforms
13
11
  # Look in the 'template/profiles' directory and detect which platforms are available.
14
- profile_templates_dir = File.join(TEMPLATES_PATH, 'profiles')
15
- Dir.glob(File.join(profile_templates_dir, '*')).select { |p| File.directory?(p) }.map { |d| File.basename(d) }
12
+ profile_templates_dir = File.join(TEMPLATES_PATH, "profiles")
13
+ Dir.glob(File.join(profile_templates_dir, "*")).select { |p| File.directory?(p) }.map { |d| File.basename(d) }
16
14
  end
17
15
 
18
16
  no_commands do
@@ -21,17 +19,17 @@ module InspecPlugins
21
19
  end
22
20
  end
23
21
 
24
- desc 'profile [OPTIONS] NAME', 'Generate a new profile'
25
- option :platform, default: 'os', type: :string, aliases: [:p],
22
+ desc "profile [OPTIONS] NAME", "Generate a new profile"
23
+ option :platform, default: "os", type: :string, aliases: [:p],
26
24
  desc: "Which platform to generate a profile for: choose from #{valid_profile_platforms.join(', ')}"
27
25
  option :overwrite, type: :boolean, default: false,
28
- desc: 'Overwrites existing directory'
26
+ desc: "Overwrites existing directory"
29
27
  def profile(new_profile_name)
30
28
  unless valid_profile_platforms.include?(options[:platform])
31
29
  ui.error "Unable to generate profile: No template available for platform '#{options[:platform]}' (expected one of: #{valid_profile_platforms.join(', ')})"
32
30
  ui.exit(:usage_error)
33
31
  end
34
- template_path = File.join('profiles', options[:platform])
32
+ template_path = File.join("profiles", options[:platform])
35
33
 
36
34
  render_opts = {
37
35
  templates_path: TEMPLATES_PATH,
@@ -42,7 +40,7 @@ module InspecPlugins
42
40
  vars = {
43
41
  name: new_profile_name,
44
42
  }
45
- renderer.render_with_values(template_path, 'profile', vars)
43
+ renderer.render_with_values(template_path, "profile", vars)
46
44
  end
47
45
  end
48
46
  end
@@ -1,5 +1,5 @@
1
- require 'fileutils'
2
- require 'erb'
1
+ require "fileutils"
2
+ require "erb"
3
3
 
4
4
  module InspecPlugins
5
5
  module Init
@@ -24,7 +24,7 @@ module InspecPlugins
24
24
  source_dir = File.join(templates_path, template_subdir_path)
25
25
 
26
26
  # prepare glob for all subdirectories and files
27
- template_glob = File.join(source_dir, '**', '{*,.*}')
27
+ template_glob = File.join(source_dir, "**", "{*,.*}")
28
28
 
29
29
  # Use the name attribute to define the path to the new thing.
30
30
  # May contain slashes.
@@ -43,7 +43,7 @@ module InspecPlugins
43
43
  ui.exit(:usage_error)
44
44
  end
45
45
 
46
- ui.headline('InSpec Code Generator')
46
+ ui.headline("InSpec Code Generator")
47
47
 
48
48
  ui.plain_line "Creating new #{template_type} at #{ui.emphasis(full_destination_path)}"
49
49
 
@@ -1,4 +1,3 @@
1
- # encoding: utf-8
2
1
  source 'https://rubygems.org'
3
2
 
4
3
  gemspec
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  # As plugins are usually packaged and distributed as a RubyGem,
4
2
  # we have to provide a .gemspec file, which controls the gembuild
5
3
  # and publish process. This is a fairly generic gemspec.
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  # This file is known as the "entry point."
4
2
  # This is the file InSpec will try to load if it
5
3
  # thinks your plugin is installed.
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'inspec/resource'
4
2
 
5
3
  module InspecPlugins::<%= module_name %>
@@ -1,5 +1,3 @@
1
- # encoding: UTF-8
2
-
3
1
  # Plugin Definition file
4
2
  # The purpose of this file is to declare to InSpec what plugin_types (capabilities)
5
3
  # are included in this plugin, and provide hooks that will load them as needed.
@@ -1,5 +1,3 @@
1
- # encoding: UTF-8
2
-
3
1
  # This file simply makes it easier for CI engines to update
4
2
  # the version stamp, and provide a clean way for the gemspec
5
3
  # to learn the current version.
@@ -6,7 +6,7 @@
6
6
  # Include our test harness
7
7
  require_relative '../helper'
8
8
 
9
- # Because InSpec is a Spec-style test suite, we're going to use MiniTest::Spec
9
+ # Because InSpec is a Spec-style test suite, we're going to use Minitest::Spec
10
10
  # here, for familiar look and feel. However, this isn't InSpec (or RSpec) code.
11
11
  describe 'inspec list-resources core' do
12
12
  # Our helper.rb locates this library from the InSpec install that
@@ -30,11 +30,11 @@ describe 'inspec list-resources core' do
30
30
  # think that this plugin we are currently testing is installed as a
31
31
  # user plugin, by writing a plugin config file in a temp dir.
32
32
  # To use it, just provide a command line, minus the word `inspec`.
33
- let (:outcome) { run_inspec_process_with_this_plugin('listresources core') }
33
+ let(:outcome) { run_inspec_process_with_this_plugin("listresources core") }
34
34
 
35
35
  # Some tests through here use minitest Expectations, which attach to all
36
36
  # Objects, and begin with 'must' (positive) or 'wont' (negative)
37
- # See https://ruby-doc.org/stdlib-2.1.0/libdoc/minitest/rdoc/MiniTest/Expectations.html
37
+ # See http://docs.seattlerb.org/minitest/Minitest/Expectations.html
38
38
  it("should exit successfully") { outcome.exit_status.must_equal(0) }
39
39
  it("should be silent on stderr") { outcome.stderr.must_be_empty }
40
40
 
@@ -56,7 +56,7 @@ describe 'inspec list-resources core' do
56
56
  describe "when run with a search pattern that matches things" do
57
57
  # Notice that the command line is changed here:
58
58
  # "list all resources that have the word user in them"
59
- let (:outcome) { run_inspec_process_with_this_plugin('listresources core user') }
59
+ let(:outcome) { run_inspec_process_with_this_plugin("listresources core user") }
60
60
 
61
61
  # Should be well-behaved...
62
62
  it("should exit successfully") { outcome.exit_status.must_equal(0) }
@@ -76,7 +76,7 @@ describe 'inspec list-resources core' do
76
76
  end
77
77
  describe "when run with a search pattern that matches nothing" do
78
78
  # Unlikely we'll have a resource with the string 'autogyro' in it.
79
- let (:outcome) { run_inspec_process_with_this_plugin('listresources core autogyro') }
79
+ let(:outcome) { run_inspec_process_with_this_plugin("listresources core autogyro") }
80
80
 
81
81
  # Should be well-behaved...
82
82
  it("should exit successfully") { outcome.exit_status.must_equal(0) }