Skip to content
Snippets Groups Projects
Commit f7d7bac7 authored by Jörg Sachse's avatar Jörg Sachse
Browse files

fix: read CLI arguments correctly

parent a500e7ce
No related branches found
No related tags found
No related merge requests found
......@@ -6,8 +6,6 @@
# - Jens Steidl (<Jens.Steidl@slub-dresden.de>)
# INVOCATION:
# ./error_summary.sh [-h] [-n NUM] [-d DAYS] [-w] [-c]
# KNOWN PROBLEMS:
# - Showing Warnings with "-w" is buggy, use with caution.
### DEFAULTS
......@@ -26,28 +24,31 @@ fi
### CLI ARGUMENTS
for ARG in "$@"; do
case ${ARG} in
# for ARG in "$@"; do
while [[ $# -gt 0 ]]; do
case ${1} in
-h|--help)
echo "call help function here"
exit 0
;;
-n|--chars)
HOW_MANY_CHARS="${2}"
shift;
shift; shift;
;;
-d|--days)
HOW_MANY_DAYS="${2}"
shift;
shift; shift;
;;
-w|--warn)
WARN="|WARN"
COUNT_WARNINGS="true"
shift;
;;
-c|--class)
FILTER_STRING=" (ERROR${WARN})\s+\[[^[]*\]"
PRINT_ONLY_CLASSNAMES="true"
shift;
;;
*)
echo "'${ARG}' is not a valid parameter. Please use '$( basename "${0}" ) --help'. Exiting."
echo "'${1}' is not a valid parameter. Please use '$( basename "${0}" ) --help'. Exiting."
exit 1
;;
esac
......@@ -55,20 +56,23 @@ done
echo ""
echo "USING THE FOLLOWING SETTINGS:"
echo -e "\tSERVERNAME: '${HOSTNAME}'"
echo -e "\tFILTERING LOGS FROM $( date -d "${HOW_MANY_DAYS} days ago" +%Y-%m-%d ) UNTIL $( date -d today +%Y-%m-%d )"
echo -e "\tHOW MANY CHARACTERS: ${HOW_MANY_CHARS}"
echo -en "\tCOUNT WARNINGS: "; [[ "${WARN}" == "|WARN" ]] && echo "yes" || echo "no"
### FUNCTIONS
# thx @Steidl!
# grep -o "STARTZEICHENKETTE..\{ANZAHL_ZEICHEN_NACH_STARTZEICHENKETTE\}" | sort | uniq -c | sort -nr
set_filter_string(){
if [[ "${COUNT_WARNINGS}" == "true" ]]; then
WARN="|WARN"
fi
if [[ "${PRINT_ONLY_CLASSNAMES}" == true ]]; then
FILTER_STRING=" (ERROR${WARN})\s+\[[^[]*\]"
else
FILTER_STRING=" (ERROR${WARN})\s+\[.{0,${HOW_MANY_CHARS}}"
fi
}
get_last_n_days(){
LOGFILES="$( find "${SERVER_LOG_DIR}/" -maxdepth 1 -mtime -"${HOW_MANY_DAYS}" -name "server.log*" )"
for LOGFILE in ${LOGFILES}; do
......@@ -88,6 +92,15 @@ get_last_n_days(){
### MAIN
echo ""
echo "USING THE FOLLOWING SETTINGS:"
echo -e "\tSERVERNAME: '${HOSTNAME}'"
echo -e "\tFILTERING LOGS FROM $( date -d "${HOW_MANY_DAYS} days ago" +%Y-%m-%d ) UNTIL $( date -d today +%Y-%m-%d )"
echo -e "\tHOW MANY CHARACTERS: ${HOW_MANY_CHARS}"
echo -en "\tCOUNT WARNINGS: "; [[ "${WARN}" == "|WARN" ]] && echo "yes" || echo "no"
set_filter_string
echo ""
echo "REPORT LAST ${HOW_MANY_DAYS} DAYS:"
get_last_n_days
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment