From 489a23865715d8bee85bad024a479326e173941e Mon Sep 17 00:00:00 2001 From: Florian Schlegel Date: Sun, 23 Aug 2020 16:49:09 +0200 Subject: [PATCH] further deduplication --- departure.sh | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/departure.sh b/departure.sh index ee4ed1e..cf2cb2e 100755 --- a/departure.sh +++ b/departure.sh @@ -152,6 +152,18 @@ get_cvag_station_name() done } +draw_logo_time() +{ + local -n _MYOUTPUT=$1 + local TIME=$2 + LOGO_TIME=("${CHCHLOGO_S[@]}") + + for((k=1; k<6; k++)); do + append_five_line_symbol LOGO_TIME $(echo "$(date --date="@$TIME" +"%H:%M")" | cut -b"$k") + done + _MYOUTPUT="$_MYOUTPUT""\\n\\n""${LOGO_TIME[0]}""\\n""${LOGO_TIME[1]}""\\n""${LOGO_TIME[2]}""\\n""${LOGO_TIME[3]}""\\n""${LOGO_TIME[4]}""\\n""${LOGO_TIME[5]}" +} + while true; do if ! ping -q -c1 chch.it>/dev/null; then echo -e "\\n\\n\\n\\tNo internet connection!" @@ -163,7 +175,6 @@ while true; do STATIONS[1]="202" STANAME=() NUMOFSTA=${#STATIONS[*]} - LOGO_TIME=("${CHCHLOGO_S[@]}") MYOUTPUT="\\n " CHCHPOSITION=$(((CHCHPOSITION + 1) % (NUMOFSTA + 1))) @@ -182,21 +193,11 @@ while true; do if [ ${#REALSTATION_NOWMS} -lt 3 ]; then REALSTATION_NOWMS="0""$REALSTATION_NOWMS" fi - if [ ${#REALSTATION_NOWMS} -lt 3 ]; then - REALSTATION_NOWMS="0""$REALSTATION_NOWMS" - fi REALSTATION_NOW=$(( "$STATION_NOW" / 1000)) THISDATE=$(date --date="@$REALSTATION_NOW" +"%d.%m.%Y %T")",$REALSTATION_NOWMS" # Wenn Logo gezeichnet werden soll, baue Urzeit ran und zeichne - if [ "$j" -eq "$CHCHPOSITION" ]; then - UHRZEIT=$(date --date="@$REALSTATION_NOW" +"%H:%M")",$REALSTATION_NOWMS" - for((k=1; k<6; k++)); do - append_five_line_symbol LOGO_TIME $(echo "$UHRZEIT" | cut -b"$k") - done - CHCHLOGO="\\n\\n""${LOGO_TIME[0]}""\\n""${LOGO_TIME[1]}""\\n""${LOGO_TIME[2]}""\\n""${LOGO_TIME[3]}""\\n""${LOGO_TIME[4]}""\\n""${LOGO_TIME[5]}" - MYOUTPUT="$MYOUTPUT""$CHCHLOGO" - fi + [ "$j" -eq "$CHCHPOSITION" ] && draw_logo_time MYOUTPUT $REALSTATION_NOW # ohne dieses IFS trennt BASH an Space und erstellt damit zu viele Array-Felder IFS=' @@ -246,14 +247,7 @@ while true; do done MYOUTPUT="$MYOUTPUT"'\t\t└────────────────────┴─────┴───────────────────────────────┘' done - if [ "$CHCHPOSITION" -eq "$NUMOFSTA" ]; then - UHRZEIT=$(date --date="@$REALSTATION_NOW" +"%H:%M")",$REALSTATION_NOWMS" - for((k=1; k<6; k++)); do - append_five_line_symbol LOGO_TIME $(echo "$UHRZEIT" | cut -b"$k") - done - CHCHLOGO="\\n\\n""${LOGO_TIME[0]}""\\n""${LOGO_TIME[1]}""\\n""${LOGO_TIME[2]}""\\n""${LOGO_TIME[3]}""\\n""${LOGO_TIME[4]}""\\n""${LOGO_TIME[5]}" - MYOUTPUT="$MYOUTPUT""$CHCHLOGO" - fi + [ "$CHCHPOSITION" -eq "$NUMOFSTA" ] && draw_logo_time MYOUTPUT $REALSTATION_NOW clear #reset echo -e "$MYOUTPUT"