Calculate total directives and CGI entries

This commit is contained in:
Brice Waegeneire 2020-10-06 12:12:10 +02:00
parent 62a2d8fb50
commit 096e04e61c

View file

@ -59,17 +59,21 @@ categorize_confs() {
grep -Ev "^${apache_dir}/sites-enabled/.*\\.conf" "$confs" > "$confs_system" grep -Ev "^${apache_dir}/sites-enabled/.*\\.conf" "$confs" > "$confs_system"
} }
# Takes argument: file type
count_directives() { count_directives() {
directives="Allow Order Deny Satisfy" directives="Allow Order Deny Satisfy"
for directive in $directives; do for directive in $directives; do
export "$directive"="$(grep -Ec "^[[:blank:]]*$directive\\s" "$1")" export "$directive"="$(grep -Ec "^[[:blank:]]*$directive\\s" "$1")"
done done
export CGI="$(grep -Ec "^[[:blank:]]*# CGI" "$1")"
# shellcheck disable=SC2154 # shellcheck disable=SC2154
if [ "$Allow" -ne 0 ] || [ "$Order" -ne 0 ] || \ if [ "$Allow" -ne 0 ] || [ "$Order" -ne 0 ] || \
[ "$Deny" -ne 0 ] || [ "$Satisfy" -ne 0 ]; then [ "$Deny" -ne 0 ] || [ "$Satisfy" -ne 0 ]; then
printf "%s %d %d %d %d\\n" "$1" "$Allow" "$Order" "$Deny" "$Satisfy" export Total=$(( $Allow + $Order + $Deny + $Satisfy ))
printf "%s %d %d %d %d %d %d %s\\n" "$1" \
"$Allow" "$Order" "$Deny" "$Satisfy" "$Total" "$CGI" "$2"
fi fi
} }
@ -77,13 +81,26 @@ count_directives() {
display_results() { display_results() {
mv -b "$result" "$result".bak || true mv -b "$result" "$result".bak || true
printf 'File\tAllow\tOrder\tDeny\tSatsify\n' >&2 # Types: Vhost, System, Htaccess
# TODO make shellcheck happy printf 'File\tAllow\tOrder\tDeny\tSatsify\tTotal (directives)\tCGI\tType (V|S|H)\n' >&2
for file in $(cat $confs); do while IFS= read -r file; do
count_directives "$file" | tee -a "$result" count_directives "$file" V | tee -a "$result"
done done < "$confs_vhost"
while IFS= read -r file; do
count_directives "$file" S | tee -a "$result"
done < "$confs_system"
while IFS= read -r file; do
count_directives "$file" H | tee -a "$result"
done < "$confs_htaccess"
}
# One line machine summary of the results
display_summary() {
# Types: Vhost, System, Htaccess
printf 'Vhost\tSystem\tHtaccess\tTotal\tCGI\n' >&2
} }
get_confs get_confs
categorize_confs categorize_confs
display_results display_results
# display_summary