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…
Reference in a new issue