#!/usr/bin/env bash # # bt-settime - set system date/time (and RTC when available). # # Usage: # bt-settime "YYYY-MM-DD HH:MM:SS" # # Invoked through sudo by the web configurator. set -euo pipefail err() { echo "bt-settime: $*" >&2; exit 1; } [ "$#" -eq 1 ] || err 'usage: bt-settime "YYYY-MM-DD HH:MM:SS"' DT="$1" [[ "$DT" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}\ [0-9]{2}:[0-9]{2}:[0-9]{2}$ ]] \ || err "invalid datetime (expected YYYY-MM-DD HH:MM:SS)" date -s "$DT" >/dev/null hwclock -w 2>/dev/null || true echo "ok $DT"