mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-09-27 08:41:13 -07:00
meta-forgefirm: the forgefirm-users init replays the account at boot; sshd refuses root and empty passwords and runs only while the panel turns it on; the release image keeps an empty root password for the console; the console banner; avahi announces forgefirm.local; https in libmicrohttpd and ulfius; the panel on 80 and 443; the license bundle on the rootfs; release.sh checks the root policy on the built rootfs. forgetest: the commission suites (commission, commission_dark, commission_sheet: 23 cases); the runner turns cloud mode on with the typed phrase for a test that declares it; the baseline's motor_lock is 0; the log-export test checks the bundle for the camera key; the record helpers write bytes as given and join the daemon's paths as POSIX. The stream harness gains rule 24: a hold verdict is held again after a resume. Bench drills: lens_travel.py and lens_stop_accel.py. Docs: BRINGUP carries the present state; CAMPAIGN-LOG carries the dated record.
59 lines
1.7 KiB
Bash
59 lines
1.7 KiB
Bash
#!/bin/sh
|
|
### BEGIN INIT INFO
|
|
# Provides: forgetest
|
|
# Required-Start: $network forgectrl
|
|
# Required-Stop:
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Short-Description: ForgeFIRM release acceptance tool (dev image, HTTP :8090)
|
|
### END INIT INFO
|
|
|
|
# Dev-image only. The daemon reads /etc/forgefirm-manifest.json, keeps its
|
|
# state under /data/forgetest, and serves the acceptance + bench pages on
|
|
# port 8090 (FORGETEST_PORT). It starts after forgectrl and stops before
|
|
# the controllers at shutdown; a takeover left behind by a hard stop is
|
|
# recovered at the next start (forgectrl is started again).
|
|
|
|
PIDFILE=/var/run/forgetest.pid
|
|
DATA=/data/forgetest
|
|
LOG=$DATA/daemon.log
|
|
|
|
case "$1" in
|
|
start)
|
|
echo "Starting forgetest"
|
|
mkdir -p "$DATA"
|
|
# The bench seed: the commissioning override lifts the wizard part of
|
|
# the controller gate until the next reboot (/run is tmpfs), so a
|
|
# campaign runs on a machine whose required wizards are not complete.
|
|
# Nothing lifts the agreements or the account: the bench accepts them
|
|
# once, and that stays in /data.
|
|
mkdir -p /run/forgefirm
|
|
: > /run/forgefirm/commissioning-override
|
|
start-stop-daemon -S -q -p $PIDFILE -m -b -x /bin/sh -- -c \
|
|
"exec /usr/bin/python3 -m forgetest >> $LOG 2>&1"
|
|
;;
|
|
stop)
|
|
echo "Stopping forgetest"
|
|
start-stop-daemon -K -q -p $PIDFILE
|
|
rm -f $PIDFILE
|
|
;;
|
|
restart)
|
|
$0 stop
|
|
sleep 1
|
|
$0 start
|
|
;;
|
|
status)
|
|
if [ -f $PIDFILE ] && kill -0 "$(cat $PIDFILE)" 2>/dev/null; then
|
|
echo "forgetest is running"
|
|
exit 0
|
|
fi
|
|
echo "forgetest is not running"
|
|
exit 3
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {start|stop|restart|status}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
exit 0
|