Class: InspecPlugins::PluginManager::CliCommand
- Inherits:
-
Object
- Object
- InspecPlugins::PluginManager::CliCommand
show all
- Includes:
- Inspec::Dist
- 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
93
94
95
96
97
98
99
100
101
|
# File 'lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb', line 93
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
19
20
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 19
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
ui.bold(format(" %-30s%-10s%-8s%-6s", "Plugin Name", "Version", "Via", "ApiVer"))
ui.line
plugin_statuses.sort_by(&:name).each do |status|
ui.plain(format(" %-30s%-10s%-8s%-6s", status.name,
make_pretty_version(status),
status.installation_type,
status.api_generation.to_s))
end
ui.line
ui.plain(" #{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
|
# 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
ui.bold(format(" %-30s%-50s", "Plugin Name", "Versions Available"))
ui.line
search_results.keys.sort.each do |plugin_name|
versions = options[:all] ? search_results[plugin_name] : [search_results[plugin_name].first]
versions = "(" + versions.join(", ") + ")"
ui.plain(format(" %-30s%-50s", plugin_name, versions))
end
ui.line
ui.plain(" #{search_results.count} plugin(s) found")
puts
ui.exit Inspec::UI::EXIT_PLUGIN_ERROR if search_results.empty?
rescue Inspec::Plugin::V2::SearchError => ex
Inspec::Log.error ex.message
ui.exit Inspec::UI::EXIT_USAGE_ERROR
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
165
166
|
# 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
ui.plain("#{ui.red('No such plugin installed:')} #{plugin_name} is not " \
"installed - uninstall failed")
ui.exit Inspec::UI::EXIT_USAGE_ERROR
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
ui.bold(plugin_name + " path-based plugin install has been " \
"uninstalled")
else
ui.bold(plugin_name + " plugin, version #{old_version}, has " \
"been uninstalled")
end
ui.exit Inspec::UI::EXIT_NORMAL
end
|
#update(plugin_name) ⇒ Object
112
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 112
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
ui.plain("#{ui.red('Update error:')} #{ex.message} - update failed")
ui.exit Inspec::UI::EXIT_USAGE_ERROR
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
ui.bold(plugin_name + " plugin, version #{old_version} -> " \
"#{new_version}, updated from rubygems.org")
end
|