First version
This commit is contained in:
commit
243e92a9dd
84 files changed
+4012
No files matched your search
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
# Runs as root (contest-restrictions-warning.service). While any contest
|
||||
# restriction is off (after maintenance with contest-restrictions off), shows
|
||||
# a red banner across the top of the screen, so that the proctors notice it.
|
||||
# The banner has no title bar or close button, the team account cannot stop
|
||||
# this process, and the banner comes back within seconds if its window is
|
||||
# destroyed. It is redrawn every 15 seconds to stay above the other windows.
|
||||
export DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0
|
||||
off() {
|
||||
! systemctl is-active --quiet firewall.service ||
|
||||
! systemctl is-active --quiet usbguard.service ||
|
||||
[ -n "$(ls -A /etc/contest-restrictions/disabled 2>/dev/null)" ]
|
||||
}
|
||||
show() {
|
||||
width=$(xdpyinfo 2>/dev/null | awk '/dimensions/ {split($2, a, "x"); print a[1]}')
|
||||
[ -n "$width" ] || return
|
||||
xmessage -geometry "${width}x70+0+0" -buttons "" \
|
||||
-xrm "*overrideRedirect: true" \
|
||||
-fg white -bg red3 -fn "-*-helvetica-bold-r-*-*-34-*-*-*-*-*-*-*" \
|
||||
"CONTEST RESTRICTIONS ARE OFF ON THIS MACHINE - CALL THE STAFF" >/dev/null 2>&1 &
|
||||
pid=$!
|
||||
shown=$(date +%s)
|
||||
}
|
||||
pid=""
|
||||
shown=0
|
||||
while true; do
|
||||
if off && [ -e "$XAUTHORITY" ]; then
|
||||
if [ -z "$pid" ] || ! kill -0 "$pid" 2>/dev/null; then
|
||||
show
|
||||
elif [ $(( $(date +%s) - shown )) -ge 15 ]; then
|
||||
old=$pid
|
||||
show
|
||||
sleep 1
|
||||
kill "$old" 2>/dev/null
|
||||
fi
|
||||
elif [ -n "$pid" ]; then
|
||||
kill "$pid" 2>/dev/null
|
||||
pid=""
|
||||
fi
|
||||
sleep 3
|
||||
done
|
||||
Reference in new issue
Block a user