Add new type: __locale_system
Merge the best of the proposals from Steven and Carlos
This commit is contained in:
		
					parent
					
						
							
								d2997baf0b
							
						
					
				
			
			
				commit
				
					
						06d0eabb5f
					
				
			
		
					 5 changed files with 125 additions and 0 deletions
				
			
		
							
								
								
									
										66
									
								
								cdist/conf/type/__locale_system/man.rst
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								cdist/conf/type/__locale_system/man.rst
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,66 @@ | ||||||
|  | cdist-type__locale_system(7) | ||||||
|  | ============================ | ||||||
|  | 
 | ||||||
|  | NAME | ||||||
|  | ---- | ||||||
|  | cdist-type__locale_system - Set system-wide locale | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | DESCRIPTION | ||||||
|  | ----------- | ||||||
|  | This cdist type allows you to modify system-wide locale. | ||||||
|  | The name of the locale category is given as the object id | ||||||
|  | (usually you are probably interested in using LANG) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | OPTIONAL PARAMETERS | ||||||
|  | ------------------- | ||||||
|  | 
 | ||||||
|  | state | ||||||
|  |     present or absent, defaults to present. | ||||||
|  |     If present, sets the locale category to the given value. | ||||||
|  |     If absent, removes the locale category from the system file. | ||||||
|  | 
 | ||||||
|  | value | ||||||
|  |     The value for the locale category. | ||||||
|  |     Defaults to en_US.UTF-8. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | EXAMPLES | ||||||
|  | -------- | ||||||
|  | 
 | ||||||
|  | .. code-block:: sh | ||||||
|  | 
 | ||||||
|  |     # Set LANG to en_US.UTF-8 | ||||||
|  |     __locale_system LANG | ||||||
|  | 
 | ||||||
|  |     # Same as above, but more explicit | ||||||
|  |     __locale_system LANG --value en_US.UTF-8 | ||||||
|  | 
 | ||||||
|  |     # Set category LC_MESSAGES to de_CH.UTF-8 | ||||||
|  |     __locale_system LC_MESSAGES --value de_CH.UTF-8 | ||||||
|  | 
 | ||||||
|  |     # Remove setting for LC_ALL | ||||||
|  |     __locale_system LC_ALL --state absent | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | SEE ALSO | ||||||
|  | -------- | ||||||
|  | :strong:`locale`\ (1) | ||||||
|  | :strong:`localedef`\ (1) | ||||||
|  | :strong:`cdist-type__locale`\ (7) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | AUTHORS | ||||||
|  | ------- | ||||||
|  | Steven Armstrong <steven-cdist--@--armstrong.cc>, | ||||||
|  | Carlos Ortigoza <carlos.ortigoza--@--ungleich.ch>, | ||||||
|  | Nico Schottelius <nico.schottelius--@--ungleich.ch> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | COPYING | ||||||
|  | ------- | ||||||
|  | Copyright \(C) 2016 Nico Schottelius. Free use of this software is | ||||||
|  | granted under the terms of the GNU General Public License version 3 or | ||||||
|  | later (GPLv3+). | ||||||
							
								
								
									
										55
									
								
								cdist/conf/type/__locale_system/manifest
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								cdist/conf/type/__locale_system/manifest
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,55 @@ | ||||||
|  | #!/bin/sh | ||||||
|  | # | ||||||
|  | # 2012-2016 Steven Armstrong (steven-cdist at armstrong.cc) | ||||||
|  | # 2016 Carlos Ortigoza (carlos.ortigoza at ungleich.ch) | ||||||
|  | # 2016 Nico Schottelius (nico.schottelius at ungleich.ch) | ||||||
|  | # | ||||||
|  | # This file is part of cdist. | ||||||
|  | # | ||||||
|  | # cdist is free software: you can redistribute it and/or modify | ||||||
|  | # it under the terms of the GNU General Public License as published by | ||||||
|  | # the Free Software Foundation, either version 3 of the License, or | ||||||
|  | # (at your option) any later version. | ||||||
|  | # | ||||||
|  | # cdist is distributed in the hope that it will be useful, | ||||||
|  | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  | # GNU General Public License for more details. | ||||||
|  | # | ||||||
|  | # You should have received a copy of the GNU General Public License | ||||||
|  | # along with cdist. If not, see <http://www.gnu.org/licenses/>. | ||||||
|  | # | ||||||
|  | # | ||||||
|  | # Configure system-wide locale by modifying i18n file. | ||||||
|  | # | ||||||
|  | 
 | ||||||
|  | os=$(cat "$__global/explorer/os") | ||||||
|  | 
 | ||||||
|  | case "$os" in | ||||||
|  |     debian|ubuntu) | ||||||
|  |         locale_conf="/etc/default/locale" | ||||||
|  |         ;; | ||||||
|  |     archlinux) | ||||||
|  |         locale_conf="/etc/locale.conf" | ||||||
|  |         ;; | ||||||
|  |     redhat|centos) | ||||||
|  |         locale_conf="/etc/sysconfig/i18n" | ||||||
|  |         ;; | ||||||
|  |     *) | ||||||
|  |         echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 | ||||||
|  |         echo "Please contribute an implementation for it if you can." >&2 | ||||||
|  |         exit 1 | ||||||
|  |         ;; | ||||||
|  | esac | ||||||
|  | 
 | ||||||
|  | __file "$locale_conf" \ | ||||||
|  |        --owner root --group root --mode 644 \ | ||||||
|  |        --state exists | ||||||
|  | 
 | ||||||
|  | require="__file/$locale_conf" \ | ||||||
|  |        __key_value "$locale_conf:$__object_id" \ | ||||||
|  |        --file "$locale_conf" \ | ||||||
|  |        --key "$__object_id" \ | ||||||
|  |        --delimiter = \ | ||||||
|  |        --state "$(cat "$__object/parameter/state")" \ | ||||||
|  |        --value "$(cat "$__object/parameter/value")" | ||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__locale_system/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__locale_system/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | present | ||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__locale_system/parameter/default/value
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__locale_system/parameter/default/value
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | en_US.UTF-8 | ||||||
							
								
								
									
										2
									
								
								cdist/conf/type/__locale_system/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								cdist/conf/type/__locale_system/parameter/optional
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | ||||||
|  | state | ||||||
|  | value | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue