Handle newlines in generation scripts

The generation scripts will now properly handle/ignore empty lines as this previously would cause issues with the generated Unbound output.
This commit is contained in:
Amir Zarrinkafsh 2021-01-28 10:16:44 +11:00
parent 019ec04f27
commit 8fbf55bdbe
No known key found for this signature in database
GPG Key ID: ECDB8EF9E77E4EBF
2 changed files with 7 additions and 5 deletions

View File

@ -64,8 +64,8 @@ while read -r entry; do
done <<< $(cat ${basedir}/$filename | sort); done <<< $(cat ${basedir}/$filename | sort);
# All other entries # All other entries
while read -r fileentry; do while read -r fileentry; do
# Ignore comments and wildcards # Ignore comments, newlines and wildcards
if [[ $fileentry =~ ^(\#|\*\.) ]]; then if [[ $fileentry =~ ^(\#|\*\.) ]] || [[ -z $fileentry ]]; then
continue continue
fi fi
parsed=$(echo $fileentry) parsed=$(echo $fileentry)

View File

@ -45,16 +45,18 @@ while read entry; do
destfilename=$(echo $filename | sed -e 's/txt/conf/') destfilename=$(echo $filename | sed -e 's/txt/conf/')
outputfile=${outputdir}/${destfilename} outputfile=${outputdir}/${destfilename}
touch $outputfile touch $outputfile
echo "server:" >> $outputfile
while read fileentry; do while read fileentry; do
# Ignore comments # Ignore comments and newlines
if [[ $fileentry == \#* ]]; then if [[ $fileentry == \#* ]] || [[ -z $fileentry ]]; then
continue continue
fi fi
parsed=$(echo $fileentry | sed -e "s/^\*\.//") parsed=$(echo $fileentry | sed -e "s/^\*\.//")
if grep -qx "$parsed" $outputfile; then if grep -qx "$parsed" $outputfile; then
continue continue
fi fi
if [[ $(head -n 1 $outputfile) != "server:" ]]; then
echo "server:" >> $outputfile
fi
echo " local-zone: \"${parsed}\" redirect" >> $outputfile echo " local-zone: \"${parsed}\" redirect" >> $outputfile
for i in ${cacheip}; do for i in ${cacheip}; do
echo " local-data: \"${parsed} 30 IN A ${i}\"" >> $outputfile echo " local-data: \"${parsed} 30 IN A ${i}\"" >> $outputfile