module Puppet::ModuleTool::Errors class UninstallError < ModuleToolError; end class NoVersionMatchesError < UninstallError def initialize(options) @module_name = options[:module_name] @modules = options[:installed_modules] @version = options[:version_range] super _("Could not uninstall '%{module_name}'; no installed version matches") % { module_name: @module_name } end def multiline module_versions_list = @modules.map do |mod| _(" '%{module_name}' (%{version}) is installed in %{path}") % { module_name: mod[:name], version: v(mod[:version]), path: mod[:path] } end.join("\n") if module_versions_list.empty? _(<<-MSG).chomp % { module_name: @module_name, version: v(@version)} Could not uninstall module '%{module_name}' (%{version}) No installed version of '%{module_name}' matches (%{version}) MSG else _(<<-MSG).chomp % { module_name: @module_name, version: v(@version), module_versions_list: module_versions_list } Could not uninstall module '%{module_name}' (%{version}) No installed version of '%{module_name}' matches (%{version}) %{module_versions_list} MSG end end end class ModuleIsRequiredError < UninstallError def initialize(options) @module_name = options[:module_name] @required_by = options[:required_by] @requested_version = options[:requested_version] @installed_version = options[:installed_version] super _("Could not uninstall '%{module_name}'; installed modules still depend upon it") % { module_name: @module_name } end def multiline module_requirements_list = @required_by.map do |mod| msg_variables = { module_name: mod['name'], version: v(mod['version']), module_dependency: @module_name, dependency_version: v(mod['version_requirement']) } _(" '%{module_name}' (%{version}) requires '%{module_dependency}' (%{dependency_version})") % msg_variables end.join("\n") if @requested_version msg_variables = { module_name: @module_name, requested_version: @requested_version, version: v(@installed_version), module_requirements_list: module_requirements_list } #TRANSLATORS `puppet module uninstall --force` is a command line option that should not be translated _(<<-EOF).chomp % msg_variables Could not uninstall module '%{module_name}' (v%{requested_version}) Other installed modules have dependencies on '%{module_name}' (%{version}) %{module_requirements_list} Use `puppet module uninstall --force` to uninstall this module anyway EOF else #TRANSLATORS `puppet module uninstall --force` is a command line option that should not be translated _(<<-EOF) % { module_name: @module_name, version: v(@installed_version), module_requirements_list: module_requirements_list } Could not uninstall module '%{module_name}' Other installed modules have dependencies on '%{module_name}' (%{version}) %{module_requirements_list} Use `puppet module uninstall --force` to uninstall this module anyway EOF end end end end