Class: InspecPlugins::PluginManager::CliCommand
- Inherits:
-
Object
- Object
- InspecPlugins::PluginManager::CliCommand
show all
- Includes:
- Inspec::Dist, Term::ANSIColor
- Defined in:
- lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb
Constant Summary
Inspec::Dist::AUTOMATE_PRODUCT_NAME, Inspec::Dist::COMPLIANCE_PRODUCT_NAME, Inspec::Dist::EXEC_NAME, Inspec::Dist::PRODUCT_NAME, Inspec::Dist::SERVER_PRODUCT_NAME
Instance Method Summary
collapse
Instance Method Details
#install(plugin_id_arg) ⇒ Object
94
95
96
97
98
99
100
101
102
|
# File 'lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb', line 94
def install(plugin_id_arg)
if plugin_id_arg =~ /\.gem$/ install_from_gemfile(plugin_id_arg)
elsif plugin_id_arg =~ %r{[\/\\]} || Dir.exist?(plugin_id_arg) install_from_path(plugin_id_arg)
else
install_from_remote_gem(plugin_id_arg)
end
end
|
#list ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb', line 21
def list
plugin_statuses = Inspec::Plugin::V2::Registry.instance.plugin_statuses
plugin_statuses.reject! { |s| %i{core bundle}.include?(s.installation_type) } unless options[:all]
puts
puts(bold { format(" %-30s%-10s%-8s%-6s", "Plugin Name", "Version", "Via", "ApiVer") })
puts "-" * 55
plugin_statuses.sort_by(&:name).each do |status|
puts(format(" %-30s%-10s%-8s%-6s", status.name, make_pretty_version(status), status.installation_type, status.api_generation.to_s))
end
puts "-" * 55
puts(" #{plugin_statuses.count} plugin(s) total")
puts
end
|
#search(search_term) ⇒ Object
Justification for disabling ABC: currently at 33.51/33
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
# File 'lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb', line 51
def search(search_term) search_results = installer.search(search_term, exact: options[:exact])
unless options[:'include-test-fixture']
search_results.delete("inspec-test-fixture")
search_results.delete("train-test-fixture")
end
puts
puts(bold { format(" %-30s%-50s", "Plugin Name", "Versions Available") })
puts "-" * 55
search_results.keys.sort.each do |plugin_name|
versions = options[:all] ? search_results[plugin_name] : [search_results[plugin_name].first]
versions = "(" + versions.join(", ") + ")"
puts(format(" %-30s%-50s", plugin_name, versions))
end
puts "-" * 55
puts(" #{search_results.count} plugin(s) found")
puts
exit 2 if search_results.empty?
rescue Inspec::Plugin::V2::SearchError => ex
Inspec::Log.error ex.message
exit 1
end
|
#uninstall(plugin_name) ⇒ Object
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
# File 'lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb', line 144
def uninstall(plugin_name)
status = Inspec::Plugin::V2::Registry.instance[plugin_name.to_sym]
unless status
puts(red { "No such plugin installed: " } + "#{plugin_name} is not installed - uninstall failed")
exit 1
end
installer = Inspec::Plugin::V2::Installer.instance
pre_uninstall_versions = installer.list_installed_plugin_gems.select { |spec| spec.name == plugin_name }.map { |spec| spec.version.to_s }
old_version = pre_uninstall_versions.join(", ")
installer.uninstall(plugin_name)
if status.installation_type == :path
puts(bold { plugin_name } + " path-based plugin install has been uninstalled")
else
puts(bold { plugin_name } + " plugin, version #{old_version}, has been uninstalled")
end
exit 0
end
|
#update(plugin_name) ⇒ Object
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
# File 'lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb', line 113
def update(plugin_name)
pre_update_versions = installer.list_installed_plugin_gems.select { |spec| spec.name == plugin_name }.map { |spec| spec.version.to_s }
old_version = pre_update_versions.join(", ")
update_preflight_check(plugin_name, pre_update_versions)
begin
installer.update(plugin_name)
rescue Inspec::Plugin::V2::UpdateError => ex
puts(red { "Update error: " } + ex.message + " - update failed")
exit 1
end
post_update_versions = installer.list_installed_plugin_gems.select { |spec| spec.name == plugin_name }.map { |spec| spec.version.to_s }
new_version = (post_update_versions - pre_update_versions).first
puts(bold { plugin_name } + " plugin, version #{old_version} -> #{new_version}, updated from rubygems.org")
end
|