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