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)
 | 
					cdist-type__pacman_conf(7)
 | 
				
			||||||
===================
 | 
					==========================
 | 
				
			||||||
Dominique Roux <dominique.roux4@gmail.com>
 | 
					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
 | 
					#get params
 | 
				
			||||||
section=$(cat "$__object/parameter/section")
 | 
					section=$(cat "$__object/parameter/section")
 | 
				
			||||||
key=$(cat "$__object/parameter/key")
 | 
					key=$(cat "$__object/parameter/key")
 | 
				
			||||||
value=$(cat "$__object/parameter/value")
 | 
					value=$(cat "$__object/parameter/value")
 | 
				
			||||||
file=$(cat "$__object/parameter/file" 2>/dev/null || echo "")
 | 
					file=$(cat "$__object/parameter/file" 2>/dev/null)
 | 
				
			||||||
state=$(cat "$__object/parameter/state" 2>/dev/null || echo "present" )
 | 
					state=$(cat "$__object/parameter/state" 2>/dev/null)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#path variable default /etc/pacman.d
 | 
					#path variable default /etc/pacman.d
 | 
				
			||||||
sec_path="/etc/pacman.d"
 | 
					sec_path="/etc/pacman.d"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#allowed keys (from man pacman.conf)
 | 
					#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" )
 | 
					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" )
 | 
					boolean_option_keys="UseSyslog Color UseDelta TotalDownload CheckSpace VerbosePkgLists"
 | 
				
			||||||
allowed_repo_keys=( "Include" "Server" "SigLevel" "Usage" )
 | 
					allowed_repo_keys="Include Server SigLevel Usage"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#set global variables
 | 
					#set global variables
 | 
				
			||||||
MATH=1
 | 
					MATCH=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#function for check if array contain string
 | 
					#function for check if array contain string
 | 
				
			||||||
contains_element() {
 | 
					contains_element() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    MATCH=1
 | 
					    MATCH=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    local passed_array
 | 
					    target=$1
 | 
				
			||||||
    passed_array=(`echo "$2"`)
 | 
					    keys="${@:2}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for e in "${passed_array[@]}"; do
 | 
					
 | 
				
			||||||
        if [ "${e}" == "${1}" ]; then
 | 
					    for key in "${keys}"; do
 | 
				
			||||||
            MATCH=0
 | 
					        if [ "${key}" == "${target}" ]; then
 | 
				
			||||||
 | 
					            MATCH=1
 | 
				
			||||||
            return 0
 | 
					            return 0
 | 
				
			||||||
        fi  
 | 
					        fi  
 | 
				
			||||||
    done
 | 
					    done
 | 
				
			||||||
    MATCH=1
 | 
					    MATCH=0
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ "${file}" != "" ]; then
 | 
					if [ "${file}" != "" ]; then
 | 
				
			||||||
| 
						 | 
					@ -49,7 +70,7 @@ if [ "${file}" != "" ]; then
 | 
				
			||||||
                --state absent
 | 
					                --state absent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        echo "ERROR: State not found" >&2
 | 
					        echo "ERROR: Unknown state: ${state}" >&2
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
fi  
 | 
					fi  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -61,9 +82,9 @@ if [ "${section}" == "options" ]; then
 | 
				
			||||||
eof
 | 
					eof
 | 
				
			||||||
    #check if key is valid
 | 
					    #check if key is valid
 | 
				
			||||||
    #check for boolean value
 | 
					    #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
 | 
					        if [ "${value}" == "on" ]; then
 | 
				
			||||||
            require="__file/${sec_path}/${section}" __line ${key}_${value}\
 | 
					            require="__file/${sec_path}/${section}" __line ${key}_${value}\
 | 
				
			||||||
                --file ${sec_path}/${section} --line ${key}
 | 
					                --file ${sec_path}/${section} --line ${key}
 | 
				
			||||||
| 
						 | 
					@ -73,13 +94,13 @@ eof
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
    else
 | 
					    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}\
 | 
					            require="__file/${sec_path}/${section}" __key_value ${section}_${key}\
 | 
				
			||||||
                    --file ${sec_path}/${section} --key ${key} --value ${value} --delimiter ' = '
 | 
					                    --file ${sec_path}/${section} --key ${key} --value ${value} --delimiter ' = '
 | 
				
			||||||
        else
 | 
					        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
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -91,8 +112,8 @@ eof
 | 
				
			||||||
    if [ "${state}" == "present" ]; then
 | 
					    if [ "${state}" == "present" ]; then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #check if key is valid
 | 
					        #check if key is valid
 | 
				
			||||||
        contains_element "${key}" "$(echo ${allowed_repo_keys[@]})"
 | 
					        contains_element "${key}" "${allowed_repo_keys}"
 | 
				
			||||||
        if [ ${MATCH} -eq 1 ]; then
 | 
					        if [ ${MATCH} -eq 0 ]; then
 | 
				
			||||||
            exit
 | 
					            exit
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
| 
						 | 
					@ -105,7 +126,7 @@ eof
 | 
				
			||||||
            --state absent
 | 
					            --state absent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        echo "ERROR: State not found" >&2
 | 
					        echo "ERROR: Unknown state: ${state}" >&2
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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)
 | 
					cdist-type__pacman_integrate(7)
 | 
				
			||||||
===================
 | 
					===============================
 | 
				
			||||||
Dominique Roux <dominique.roux4@gmail.com>
 | 
					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
 | 
					if [ "${state}" == "present" ]; then
 | 
				
			||||||
    #__rsync /etc/pacman.conf\
 | 
					    __file /etc/pacman.conf\
 | 
				
			||||||
    __file /home/rouxdo/Documents/Work/cdist-dev/pacman.conf\
 | 
					 | 
				
			||||||
        --owner root --group root --mode 644 --source $__type/files/pacman.conf.cdist
 | 
					        --owner root --group root --mode 644 --source $__type/files/pacman.conf.cdist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #__rsync /etc/pacman.d/options\
 | 
					    __file /etc/pacman.d/options\
 | 
				
			||||||
    __file /home/rouxdo/Documents/Work/cdist-dev/pacman.d/options\
 | 
					 | 
				
			||||||
        --owner root --group root --mode 644 --source $__type/files/options
 | 
					        --owner root --group root --mode 644 --source $__type/files/options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #__file /etc/pacman.d/repo_empty_placeholder\
 | 
					    __file /etc/pacman.d/repo_empty_placeholder\
 | 
				
			||||||
    __file /home/rouxdo/Documents/Work/cdist-dev/pacman.d/repo_empty_placeholder\
 | 
					 | 
				
			||||||
        --owner root --group root --mode 644
 | 
					        --owner root --group root --mode 644
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #__file /etc/pacman.d/plain_file_empty_placeholder\
 | 
					    __file /etc/pacman.d/plain_file_empty_placeholder\
 | 
				
			||||||
    __file /home/rouxdo/Documents/Work/cdist-dev/pacman.d/plain_file_empty_placeholder\
 | 
					 | 
				
			||||||
        --owner root --group root --mode 644
 | 
					        --owner root --group root --mode 644
 | 
				
			||||||
 | 
					
 | 
				
			||||||
elif [ "${state}" == "absent" ]; then
 | 
					elif [ "${state}" == "absent" ]; then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #__rsync /etc/pacman.conf\
 | 
					    __file /etc/pacman.conf\
 | 
				
			||||||
    __file /home/rouxdo/Documents/Work/cdist-dev/pacman.conf\
 | 
					 | 
				
			||||||
        --owner root --group root --mode 644 --source $__type/files/pacman.conf.pacman
 | 
					        --owner root --group root --mode 644 --source $__type/files/pacman.conf.pacman
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #__rsync /etc/pacman.d/mirrorlist\
 | 
					    __file /etc/pacman.d/mirrorlist\
 | 
				
			||||||
    __file /home/rouxdo/Documents/Work/cdist-dev/pacman.d/mirrorlist\
 | 
					 | 
				
			||||||
        --owner root --group root --mode 644 --source $__type/files/mirrorlist
 | 
					        --owner root --group root --mode 644 --source $__type/files/mirrorlist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #__rsync /etc/pacman.d/options\
 | 
					    __file /etc/pacman.d/options\
 | 
				
			||||||
    __file /home/rouxdo/Documents/Work/cdist-dev/pacman.d/options\
 | 
					 | 
				
			||||||
        --state absent
 | 
					        --state absent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #__file /etc/pacman.d/repo_empty_placeholder\
 | 
					    __file /etc/pacman.d/repo_empty_placeholder\
 | 
				
			||||||
    __file /home/rouxdo/Documents/Work/cdist-dev/pacman.d/repo_empty_placeholder\
 | 
					 | 
				
			||||||
        --state absent
 | 
					        --state absent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #__file /etc/pacman.d/plain_file_empty_placeholder\
 | 
					    __file /etc/pacman.d/plain_file_empty_placeholder\
 | 
				
			||||||
    __file /home/rouxdo/Documents/Work/cdist-dev/pacman.d/plain_file_empty_placeholder\
 | 
					 | 
				
			||||||
        --state absent
 | 
					        --state absent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    echo "ERROR: State not found" >&2
 | 
					    echo "ERROR: Unknown state: ${state}" >&2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					present
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue