22 lines
526 B
Bash
22 lines
526 B
Bash
#!/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"
|