#!/usr/bin/env bash
# plik receptury: default_date

# Wykorzystanie czasu południa zapobiega błędowi, który mógłby powstać
# w przypadku uruchomienia skryptu na kilka sekund przed zmianą daty i spowodować
# przesunięcie o jeden dzień
START_DATE=$(date -d 'last week Monday 12:00:00' '+%Y-%m-%d')

while [ 1 ]; do
    printf "%b" "Data początkowa to:  $START_DATE. Czy jest poprawna? (T/nowa data) "
    read answer

    # Każda wartość inna niż "T" lub "t" jest uznawana za nową datę.
    # Można użyć wyrażenia "[Tt]*", aby umożliwić użytkownik wpisanie "tak"...
    # Sprawdzenie, czy data jest zgodna z formatem: YYYY-MM-DD
    case "$answer" in
        [Tt]) break
            ;;
        [0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9])
            printf "%b" "Zastępuję $START_DATE datą $answer\n"
            START_DATE="$answer"
            ;;

        *)   printf "%b" "Błędna data, spróbuj jeszcze raz...\n"
            ;;
    esac
done

END_DATE=$(date -d "$START_DATE +7 days" '+%Y-%m-%d')

echo "Data początkowa: $START_DATE"
echo "Data końcowa:    $END_DATE"
