forked from ungleich-public/cdist
		
	Bugfixes:
-Added GPLv3 header -Set correct '=' in man.text -Now uses default values cdist-like -Replace arrays with plain variables -Rewrote the error message
This commit is contained in:
		
					parent
					
						
							
								94e059a293
							
						
					
				
			
			
				commit
				
					
						1690c9d8ff
					
				
			
		
					 7 changed files with 82 additions and 44 deletions
				
			
		|  | @ -1,5 +1,5 @@ | |||
| cdist-type__pacman_conf(7) | ||||
| =================== | ||||
| ========================== | ||||
| Dominique Roux <dominique.roux4@gmail.com> | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,36 +1,57 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # 2015 Dominique Roux (dominique.roux4 at gmail.com) | ||||
| # | ||||
| # 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/>. | ||||
| # | ||||
| 
 | ||||
| #get params | ||||
| section=$(cat "$__object/parameter/section") | ||||
| key=$(cat "$__object/parameter/key") | ||||
| value=$(cat "$__object/parameter/value") | ||||
| file=$(cat "$__object/parameter/file" 2>/dev/null || echo "") | ||||
| state=$(cat "$__object/parameter/state" 2>/dev/null || echo "present" ) | ||||
| file=$(cat "$__object/parameter/file" 2>/dev/null) | ||||
| state=$(cat "$__object/parameter/state" 2>/dev/null) | ||||
| 
 | ||||
| #path variable default /etc/pacman.d | ||||
| sec_path="/etc/pacman.d" | ||||
| 
 | ||||
| #allowed keys (from man pacman.conf) | ||||
| allowed_option_keys=( "RootDir" "DBPath" "CacheDir" "GPGDir" "LogFile" "HoldPkg" "IgnorePkg" "IgnoreGroup" "Include" "Architecture" "XferCommand" "NoUpgrade" "NoExtract" "CleanMethod" "SigLevel" "LocalFileSigLevel" "RemoteFileSigLevel" ) | ||||
| boolean_option_keys=( "UseSyslog" "Color" "UseDelta" "TotalDownload" "CheckSpace" "VerbosePkgLists" ) | ||||
| allowed_repo_keys=( "Include" "Server" "SigLevel" "Usage" ) | ||||
| allowed_option_keys="RootDir DBPath CacheDir GPGDir LogFile HoldPkg IgnorePkg IgnoreGroup Include Architecture XferCommand NoUpgrade NoExtract CleanMethod SigLevel LocalFileSigLevel RemoteFileSigLevel" | ||||
| boolean_option_keys="UseSyslog Color UseDelta TotalDownload CheckSpace VerbosePkgLists" | ||||
| allowed_repo_keys="Include Server SigLevel Usage" | ||||
| 
 | ||||
| #set global variables | ||||
| MATH=1 | ||||
| MATCH=0 | ||||
| 
 | ||||
| #function for check if array contain string | ||||
| contains_element() { | ||||
| 
 | ||||
|     MATCH=1 | ||||
|     MATCH=0 | ||||
| 
 | ||||
|     local passed_array | ||||
|     passed_array=(`echo "$2"`) | ||||
|     target=$1 | ||||
|     keys="${@:2}" | ||||
| 
 | ||||
|     for e in "${passed_array[@]}"; do | ||||
|         if [ "${e}" == "${1}" ]; then | ||||
|             MATCH=0 | ||||
| 
 | ||||
|     for key in "${keys}"; do | ||||
|         if [ "${key}" == "${target}" ]; then | ||||
|             MATCH=1 | ||||
|             return 0 | ||||
|         fi   | ||||
|     done | ||||
|     MATCH=1 | ||||
|     MATCH=0 | ||||
| } | ||||
| 
 | ||||
| if [ "${file}" != "" ]; then | ||||
|  | @ -49,7 +70,7 @@ if [ "${file}" != "" ]; then | |||
|                 --state absent | ||||
| 
 | ||||
|     else | ||||
|         echo "ERROR: State not found" >&2 | ||||
|         echo "ERROR: Unknown state: ${state}" >&2 | ||||
|     fi | ||||
| fi   | ||||
| 
 | ||||
|  | @ -61,9 +82,9 @@ if [ "${section}" == "options" ]; then | |||
| eof | ||||
|     #check if key is valid | ||||
|     #check for boolean value | ||||
|     contains_element "${key}" "$(echo ${boolean_option_keys[@]})" | ||||
|     contains_element "${key}" "${boolean_option_keys}" | ||||
| 
 | ||||
|     if [ "${MATCH}" -eq 0 ]; then | ||||
|     if [ "${MATCH}" -eq 1 ]; then | ||||
|         if [ "${value}" == "on" ]; then | ||||
|             require="__file/${sec_path}/${section}" __line ${key}_${value}\ | ||||
|                 --file ${sec_path}/${section} --line ${key} | ||||
|  | @ -73,13 +94,13 @@ eof | |||
|         fi | ||||
|          | ||||
|     else | ||||
|         contains_element "${key}" "$(echo ${allowed_option_keys[@]})" | ||||
|         contains_element "${key}" "${allowed_option_keys}" | ||||
| 
 | ||||
|         if [ "${MATCH}" -eq 0 ]; then | ||||
|         if [ "${MATCH}" -eq 1 ]; then | ||||
|             require="__file/${sec_path}/${section}" __key_value ${section}_${key}\ | ||||
|                     --file ${sec_path}/${section} --key ${key} --value ${value} --delimiter ' = ' | ||||
|         else | ||||
|             echo "Key is not valid. Have a look at man pacman.conf" >&2 | ||||
|             echo "Key: ${key} is not valid. Have a look at man pacman.conf" >&2 | ||||
|         fi | ||||
|     fi | ||||
| 
 | ||||
|  | @ -91,8 +112,8 @@ eof | |||
|     if [ "${state}" == "present" ]; then | ||||
| 
 | ||||
|         #check if key is valid | ||||
|         contains_element "${key}" "$(echo ${allowed_repo_keys[@]})" | ||||
|         if [ ${MATCH} -eq 1 ]; then | ||||
|         contains_element "${key}" "${allowed_repo_keys}" | ||||
|         if [ ${MATCH} -eq 0 ]; then | ||||
|             exit | ||||
|         fi | ||||
|      | ||||
|  | @ -105,7 +126,7 @@ eof | |||
|             --state absent | ||||
| 
 | ||||
|     else | ||||
|         echo "ERROR: State not found" >&2 | ||||
|         echo "ERROR: Unknown state: ${state}" >&2 | ||||
|     fi | ||||
| 
 | ||||
| fi | ||||
|  |  | |||
							
								
								
									
										2
									
								
								cdist/conf/type/__pacman_conf/parameter/default/file
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								cdist/conf/type/__pacman_conf/parameter/default/file
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | |||
| 
 | ||||
| 
 | ||||
							
								
								
									
										1
									
								
								cdist/conf/type/__pacman_conf/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__pacman_conf/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| present | ||||
|  | @ -1,5 +1,5 @@ | |||
| cdist-type__pacman_integrate(7) | ||||
| =================== | ||||
| =============================== | ||||
| Dominique Roux <dominique.roux4@gmail.com> | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,46 +1,59 @@ | |||
| state=$(cat $__object/parameter/state 2>/dev/null || echo "present" ) | ||||
| #!/bin/sh | ||||
| # | ||||
| # 2015 Dominique Roux (dominique.roux4 at gmail.com | ||||
| # | ||||
| # 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/>. | ||||
| # | ||||
| 
 | ||||
| state=$(cat $__object/parameter/state 2>/dev/null) | ||||
| 
 | ||||
| path="/etc/" | ||||
| 
 | ||||
| if [ "${state}" == "present" ]; then | ||||
|     #__rsync /etc/pacman.conf\ | ||||
|     __file /home/rouxdo/Documents/Work/cdist-dev/pacman.conf\ | ||||
|     __file /etc/pacman.conf\ | ||||
|         --owner root --group root --mode 644 --source $__type/files/pacman.conf.cdist | ||||
| 
 | ||||
|     #__rsync /etc/pacman.d/options\ | ||||
|     __file /home/rouxdo/Documents/Work/cdist-dev/pacman.d/options\ | ||||
|     __file /etc/pacman.d/options\ | ||||
|         --owner root --group root --mode 644 --source $__type/files/options | ||||
| 
 | ||||
|     #__file /etc/pacman.d/repo_empty_placeholder\ | ||||
|     __file /home/rouxdo/Documents/Work/cdist-dev/pacman.d/repo_empty_placeholder\ | ||||
|     __file /etc/pacman.d/repo_empty_placeholder\ | ||||
|         --owner root --group root --mode 644 | ||||
| 
 | ||||
|     #__file /etc/pacman.d/plain_file_empty_placeholder\ | ||||
|     __file /home/rouxdo/Documents/Work/cdist-dev/pacman.d/plain_file_empty_placeholder\ | ||||
|     __file /etc/pacman.d/plain_file_empty_placeholder\ | ||||
|         --owner root --group root --mode 644 | ||||
| 
 | ||||
| elif [ "${state}" == "absent" ]; then | ||||
| 
 | ||||
|     #__rsync /etc/pacman.conf\ | ||||
|     __file /home/rouxdo/Documents/Work/cdist-dev/pacman.conf\ | ||||
|     __file /etc/pacman.conf\ | ||||
|         --owner root --group root --mode 644 --source $__type/files/pacman.conf.pacman | ||||
| 
 | ||||
|     #__rsync /etc/pacman.d/mirrorlist\ | ||||
|     __file /home/rouxdo/Documents/Work/cdist-dev/pacman.d/mirrorlist\ | ||||
|     __file /etc/pacman.d/mirrorlist\ | ||||
|         --owner root --group root --mode 644 --source $__type/files/mirrorlist | ||||
| 
 | ||||
|     #__rsync /etc/pacman.d/options\ | ||||
|     __file /home/rouxdo/Documents/Work/cdist-dev/pacman.d/options\ | ||||
|     __file /etc/pacman.d/options\ | ||||
|         --state absent | ||||
| 
 | ||||
|     #__file /etc/pacman.d/repo_empty_placeholder\ | ||||
|     __file /home/rouxdo/Documents/Work/cdist-dev/pacman.d/repo_empty_placeholder\ | ||||
|     __file /etc/pacman.d/repo_empty_placeholder\ | ||||
|         --state absent | ||||
| 
 | ||||
|     #__file /etc/pacman.d/plain_file_empty_placeholder\ | ||||
|     __file /home/rouxdo/Documents/Work/cdist-dev/pacman.d/plain_file_empty_placeholder\ | ||||
|     __file /etc/pacman.d/plain_file_empty_placeholder\ | ||||
|         --state absent | ||||
| 
 | ||||
| else | ||||
| 
 | ||||
|     echo "ERROR: State not found" >&2 | ||||
|     echo "ERROR: Unknown state: ${state}" >&2 | ||||
| 
 | ||||
| fi | ||||
|  |  | |||
|  | @ -0,0 +1 @@ | |||
| present | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue