38 lines
1.4 KiB
Bash
Executable file
38 lines
1.4 KiB
Bash
Executable file
#!/bin/sh
|
|
# Start a browser to connect to Agama's web user interface skipping the authentication.
|
|
# This script is invoked as a part of gnome-kiosk startup procedure. See /usr/bin/gnome-kiosk-script
|
|
# which is at the end of the chain and invokes this script.
|
|
|
|
TOKEN_FILE=/run/agama/token
|
|
PREFS=$HOME/.mozilla/firefox/profile/user.js
|
|
|
|
# read the system locale from EFI if present
|
|
LANG_FILE=/sys/firmware/efi/efivars/PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c
|
|
|
|
# file exists and is not empty
|
|
if [ -s "$LANG_FILE" ]; then
|
|
# skip the first 4 bytes (the EFI attributes), keep only the characters allowed in a language code,
|
|
# especially remove the trailing null byte
|
|
EFI_LANG=$(cat "$LANG_FILE" | tail -c +5 | tr -cd "[_a-zA-Z-]")
|
|
|
|
if [ -n "$EFI_LANG" ]; then
|
|
# escape & because it has a special meaning in sed replacement
|
|
LANG_QUERY="\\&lang=$EFI_LANG"
|
|
fi
|
|
fi
|
|
|
|
# Waiting until Agama web server is listening.
|
|
until [ "$(curl --silent --output /dev/null --write-out "%{http_code}" --head http://localhost/)" == "200" ]; do
|
|
echo "Waiting for agama-web-server"
|
|
sleep 2
|
|
done
|
|
|
|
TOKEN=$(cat $TOKEN_FILE)
|
|
sed -e "s/__HOMEPAGE__/http:\/\/localhost\/login?token=$TOKEN$LANG_QUERY/" $PREFS.template > $PREFS
|
|
|
|
# Do not use --kiosk mode (see bsc#1236073) until SLE16 is updated to next ESR. For Firefox
|
|
# 128.9 which is currently used the bug is valid, for >= 138 should be fixed.
|
|
firefox --profile $HOME/.mozilla/firefox/profile
|
|
|
|
sleep 1.0
|
|
exec "$0" "$@"
|