28 lines
1015 B
Bash
28 lines
1015 B
Bash
#!/bin/bash
|
|
# Log return from lunch.
|
|
set -euo pipefail
|
|
|
|
F="$HOME/long-day-factory.json"
|
|
TS="$(python3 -c 'import datetime;print(datetime.datetime.now().astimezone().isoformat(timespec="seconds"))')"
|
|
ALSO_LUNCH="${1:-}"
|
|
|
|
if [ ! -f "$F" ]; then
|
|
printf '{\n "startTime": null,\n "lunchTime": null,\n "backToWork": null\n}\n' > "$F"
|
|
fi
|
|
|
|
tmp="$(mktemp)"
|
|
if [ "$ALSO_LUNCH" = "--also-lunch" ]; then
|
|
jq --arg ts "$TS" '.backToWork = $ts | (if .lunchTime == null then .lunchTime = $ts else . end)' "$F" > "$tmp" && mv "$tmp" "$F"
|
|
echo "Back to work at $TS (also set lunchTime to $TS)"
|
|
else
|
|
jq --arg ts "$TS" '.backToWork = $ts' "$F" > "$tmp" && mv "$tmp" "$F"
|
|
echo "Back to work at $TS"
|
|
fi
|
|
|
|
if [ "$(jq -r '.lunchTime' "$F")" = "null" ]; then
|
|
echo "WARNING: lunchTime is not set — ask the user if they want to set it now (--also-lunch)."
|
|
fi
|
|
if [ "$(jq -r '.startTime' "$F")" = "null" ]; then
|
|
echo "WARNING: startTime is not set — did you skip long-day-start this morning?"
|
|
fi
|