use while read -> avoids ifs problem

Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
This commit is contained in:
Nico Schottelius 2014-02-24 18:06:15 +01:00
parent ce0f779664
commit a126bd955f

View file

@ -71,21 +71,17 @@ _cksum() {
echo "$1" | cksum | cut -d' ' -f 1 echo "$1" | cksum | cut -d' ' -f 1
} }
# Add each key while read key; do
IFS=$'\n' cksum_key="$(_cksum "$key")"
for key in $(cat "$__object/parameter/key"); do
unset IFS
raw_key="$(echo "$key" | tr ' ' '\n' | awk '/^ssh-(rsa|dsa)/ {printf $1" ";getline;printf $1}')"
cksum_key="$(_cksum "$raw_key")"
line_id="${owner}-${cksum_key}" line_id="${owner}-${cksum_key}"
set -- "$line_id" set -- "$line_id"
set -- "$@" --file "$file" set -- "$@" --file "$file"
set -- "$@" --regex ".*$raw_key.*" set -- "$@" --regex ".*$key.*"
if [ "$state" = 'present' ]; then if [ "$state" = 'present' ]; then
set -- "$@" --line "$key" set -- "$@" --line "$key"
fi fi
set -- "$@" --state "$state" set -- "$@" --state "$state"
require="__block/$__object_name" __line "$@" # Ensure __line does not read stdin
done require="__block/$__object_name" __line "$@" < /dev/null
done < "$__object/parameter/key"