diff --git a/departure.sh b/departure.sh index 87f1424..e0eeca9 100755 --- a/departure.sh +++ b/departure.sh @@ -194,7 +194,7 @@ draw_logo_time() for((k=1; k<6; k++)); do append_five_line_symbol LOGO_TIME "$(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]}" + _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]}" } LOGO_LINES_POSITION=0 @@ -206,34 +206,36 @@ while true; do clear else [ ${#STATION_NAME[@]} -eq 0 ] && get_cvag_station_name STATION_NAME STATION_ID - MYOUTPUT="\\n " + MYOUTPUT=() + MYOUTPUT[0]="\\n " - for ((j=0; j<"${#STATION_ID[*]}"; j++)); do + for ((j=0; j<="${#STATION_ID[*]}"; j++)); do + if [ ! "$j" -eq "$LOGO_LINES_POSITION" ]; then + [ "$j" -gt "$LOGO_LINES_POSITION" ] && THIS_STATION_ID=$(($j-1)) || THIS_STATION_ID=$j + get_cvag_station_info $THIS_STATION_ID STATION_STOPS STATION_NOW STATION_DESTINATIONS STATION_LINES STATION_ACTUAL_DEPARTURE REALSTATION_NOW THISDATE - get_cvag_station_info $j STATION_STOPS STATION_NOW STATION_DESTINATIONS STATION_LINES STATION_ACTUAL_DEPARTURE REALSTATION_NOW THISDATE - - # Wenn Logo gezeichnet werden soll, baue Urzeit ran und zeichne - [ "$j" -eq "$LOGO_LINES_POSITION" ] && draw_logo_time MYOUTPUT $REALSTATION_NOW # FIXME (should only be called once) - - MYOUTPUT="$MYOUTPUT\n\n\ + MYOUTPUT[$j]="${MYOUTPUT[$j]}\n\n\ \t\t┌────────────────────────────────┬─────────────────────────┐ \n\ -\t\t│ ${STATION_NAME[$j]}$(printf "%-$((31-${#STATION_NAME[$j]}))s" "")│ $THISDATE │\n\ +\t\t│ ${STATION_NAME[$THIS_STATION_ID]}$(printf "%-$((31-${#STATION_NAME[$THIS_STATION_ID]}))s" "")│ $THISDATE │\n\ \t\t├────────────────────┬─────┬─────┴─────────────────────────┤\n" - for ((i=0; i<"${#STATION_LINES[*]}"; i++)); do - MILLIS=$((${STATION_ACTUAL_DEPARTURE[$i]} - STATION_NOW)) - [ "$MILLIS" -lt 0 ] && MILLIS=0 - SEKS=$((MILLIS / 1000)); MILLIS=$((MILLIS % 1000)); MINS=$((SEKS / 60)); SEKS=$((SEKS % 60)) - MYOUTPUT="$MYOUTPUT\ + for ((i=0; i<"${#STATION_LINES[*]}"; i++)); do + MILLIS=$((${STATION_ACTUAL_DEPARTURE[$i]} - STATION_NOW)); [ "$MILLIS" -lt 0 ] && MILLIS=0 + SEKS=$((MILLIS / 1000)); MILLIS=$((MILLIS % 1000)); MINS=$((SEKS / 60)); SEKS=$((SEKS % 60)) + MYOUTPUT[$j]="${MYOUTPUT[$j]}\ \t\t│$(printf "%-$((3-${#MINS}))s" "")$MINS min $(printf "%-$((2-${#SEKS}))s" "")$SEKS,$(printf "%03d" $MILLIS) s │ $(printf "%-$((3-${#STATION_LINES[$i]}))s" "")${STATION_LINES[$i]} │ ${STATION_DESTINATIONS[$i]}$(printf "%-$((29-${#STATION_DESTINATIONS[$i]}))s" "") │\\n" - done - MYOUTPUT="$MYOUTPUT\ + done + MYOUTPUT[$j]="${MYOUTPUT[$j]}\ \t\t└────────────────────┴─────┴───────────────────────────────┘" + fi done - [ "$LOGO_LINES_POSITION" -eq "${#STATION_ID[*]}" ] && draw_logo_time MYOUTPUT $REALSTATION_NOW # FIXME (should only be called once) + draw_logo_time LOGO_AND_TIME $REALSTATION_NOW + MYOUTPUT[$LOGO_LINES_POSITION]="$LOGO_AND_TIME" LOGO_LINES_POSITION=$(((LOGO_LINES_POSITION + 1) % (${#STATION_ID[*]} + 1))) + clear - #reset - echo -e "$MYOUTPUT" + for ((j=0; j<="${#STATION_ID[*]}"; j++)); do + echo -e "${MYOUTPUT[$j]}" + done fi sleep 10 done