class Chef::Resource::Locale
Public Instance Methods
Source
# File lib/chef/resource/locale.rb, line 108 def define_resource_requirements requirements.assert(:all_actions) do |a| a.assertion { LOCALE_PLATFORM_FAMILIES.include?(node[:platform_family]) } a.failure_message(Chef::Exceptions::ProviderNotFound, "The locale resource is not supported on platform family: #{node[:platform_family]}") end requirements.assert(:all_actions) do |a| a.assertion do # RHEL/CentOS type platforms don't have locale-gen # Windows has locale-gen as part of the install, but not in the path which("locale-gen") || windows? end a.failure_message(Chef::Exceptions::ProviderNotFound, "The locale resource requires the locale-gen tool") end end
Avoid running this resource on platforms that don’t use /etc/locale.conf
Source
# File lib/chef/resource/locale.rb, line 128 def generate_locales shell_out!("locale-gen #{unavailable_locales.join(" ")}", timeout: 1800) end
Generates the localization files from templates using locale-gen. @see manpages.ubuntu.com/manpages/cosmic/man8/locale-gen.8.html @raise [Mixlib::ShellOut::ShellCommandFailed] not a supported language or locale
Source
# File lib/chef/resource/locale.rb, line 95 def get_system_locale_windows powershell_exec("Get-WinSystemLocale").result["Name"] end
Gets the System-locale setting for the current computer. @see docs.microsoft.com/en-us/powershell/module/international/get-winsystemlocale @return [String] the current value of the System-locale setting.
Source
# File lib/chef/resource/locale.rb, line 71 def lc_all(arg = nil) unless arg.nil? Chef.deprecated(:locale_lc_all, "Changing LC_ALL can break #{ChefUtils::Dist::Infra::PRODUCT}'s parsing of command output in unexpected ways.\n Use one of the more specific LC_ properties as needed.") end end
@deprecated Use {#lc_env} instead of this property.
{#lc_env} uses Hash with specific LC var as key.
@raise [Chef::Deprecated]
Source
# File lib/chef/resource/locale.rb, line 174 def new_content @new_content ||= begin content = {} content = new_resource.lc_env.dup if new_resource.lc_env content["LANG"] = new_resource.lang if new_resource.lang content.sort.map { |t| t.join("=") }.join("\n") + "\n" end end
@return [String] Contents that are required to be
updated in /etc/locale.conf
Source
# File lib/chef/resource/locale.rb, line 134 def set_system_locale if windows? # Sets the system locale for the current computer. # @see https://docs.microsoft.com/en-us/powershell/module/internationalcmdlets/set-winsystemlocale # response = powershell_exec("Set-WinSystemLocale -SystemLocale #{new_resource.lang}") raise response.errors.join(" ") if response.error? else generate_locales unless unavailable_locales.empty? update_locale end end
Sets the system locale for the current computer.
Source
# File lib/chef/resource/locale.rb, line 153 def update_locale file "Updating system locale" do path LOCALE_CONF content new_content end end
Updates system locale by appropriately writing them in /etc/locale.conf @note This locale change won’t affect the current run. At this time it is an exercise left to the user to restart or reboot if the locale change is required at later part of the client run. @see wiki.archlinux.org/index.php/locale#Setting_the_system_locale