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:
testing_rouxdo 2015-05-12 19:12:49 +02:00
parent 94e059a293
commit 1690c9d8ff
7 changed files with 82 additions and 44 deletions

View file

@ -1,5 +1,5 @@
cdist-type__pacman_conf(7)
===================
==========================
Dominique Roux <dominique.roux4@gmail.com>

View file

@ -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
local passed_array
passed_array=(`echo "$2"`)
for e in "${passed_array[@]}"; do
if [ "${e}" == "${1}" ]; then
MATCH=0
target=$1
keys="${@:2}"
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

View file

@ -0,0 +1,2 @@

View file

@ -0,0 +1 @@
present

View file

@ -1,5 +1,5 @@
cdist-type__pacman_integrate(7)
===================
===============================
Dominique Roux <dominique.roux4@gmail.com>

View file

@ -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

View file

@ -0,0 +1 @@
present