120 lines
3.6 KiB
Bash
Executable File
120 lines
3.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
|
|
# Stop the screen reader if this closes for any reason
|
|
trap 'sudo -n /usr/bin/systemctl stop fenrirscreenreader.service' SIGINT SIGTERM SIGHUP EXIT
|
|
|
|
# Start Fenrir for interaction with the terminal
|
|
sudo -n /usr/bin/systemctl start fenrirscreenreader.service
|
|
|
|
# Clear the screen before loading
|
|
clear
|
|
|
|
case "$GAME" in
|
|
"Alter Aeon")
|
|
pushd ~/.local/games/tintin-alteraeon
|
|
git pull -q
|
|
tt++ aa.tin
|
|
popd
|
|
;;
|
|
"BPG")
|
|
pushd ~/.local/games/bpg
|
|
git pull -q
|
|
./bpg.sh
|
|
popd
|
|
;;
|
|
"Empire MUD")
|
|
pushd ~/.local/games/tintin-empiremud
|
|
git pull -q
|
|
tt++ em.tin
|
|
popd
|
|
;;
|
|
"End of Time")
|
|
pushd ~/.local/games/tintin-endoftime
|
|
git pull -q
|
|
tt++ eot.tin
|
|
popd
|
|
;;
|
|
"Kallisti MUD")
|
|
pushd ~/.local/games/tintin-kallisti-pack
|
|
git pull -q
|
|
tt++ kallisti.tin
|
|
popd
|
|
;;
|
|
"RS Games")
|
|
pushd ~/.local/games/tintin-rsgames
|
|
git pull -q
|
|
tt++ rs.tin
|
|
popd
|
|
;;
|
|
"Slay the Text")
|
|
pushd ~/.local/games/slaythetext
|
|
git pull -q
|
|
python3 main.py
|
|
popd
|
|
;;
|
|
"Stationfall")
|
|
frotz ~/.local/frotz/Stationfall/stationfall-r107-s870430.z3
|
|
;;
|
|
"Planetfall")
|
|
frotz ~/.local/frotz/Planetfall/planetfall-r39-s880501.z3
|
|
;;
|
|
"The Hitchhiker's Guide to the Galaxy")
|
|
frotz ~/.local/frotz/"The Hitchhiker's Guide to the Galaxy/HITCHHIK.DAT"
|
|
;;
|
|
"Zork 1") ;&
|
|
"Zork 2") ;&
|
|
"Zork 3")
|
|
frotz ~/.local/frotz/${GAME/ /}/DATA/ZORK${GAME##* }.DAT
|
|
;;
|
|
"IRC")
|
|
if ! ping -c1 stormux.org &> /dev/null ; then
|
|
spd-say -Cw "No internet connection detected. Please go to the system menu and select configure internet."
|
|
exit 0
|
|
fi
|
|
configFile="$HOME/.irssi/config"
|
|
validNickRegex='^[[:alnum:]_-]*$'
|
|
# Check if nick and user_name are still set to "stormux"
|
|
if grep -qE '^\s*nick = "stormux";' "$configFile" && grep -qE '^\s*user_name = "stormux";' "$configFile"; then
|
|
echo "First time connection setup:"
|
|
echo
|
|
echo "Let's get you set up with your own nick."
|
|
echo "This is the name other people will see when you join, chat, leave, etc."
|
|
echo
|
|
while : ; do
|
|
echo "Enter your desired IRC nick:"
|
|
read -re newNick
|
|
if [[ $newNick =~ $validNickRegex ]]; then
|
|
# Update nick and user_name in config
|
|
sed -i "s/^\(\s*nick = \)\"stormux\";/\1\"$newNick\";/" "$configFile"
|
|
sed -i "s/^\(\s*user_name = \)\"stormux\";/\1\"$newNick\";/" "$configFile"
|
|
echo "Configuration updated. Launching irssi..."
|
|
break
|
|
else
|
|
echo "Invalid IRC nickname. Must start with a letter and contain only letters, numbers, and these symbols: - [ ] \\ \` ^ { } _"
|
|
fi
|
|
done
|
|
fi
|
|
# Launch irssi
|
|
/usr/bin/irssi
|
|
;;
|
|
"Network Configuration")
|
|
count=0
|
|
while [[ $count -lt 10 ]]; do
|
|
sleep 1
|
|
if echo "setting set focus#highlight=True" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock 2> /dev/null ; then
|
|
break
|
|
fi
|
|
done
|
|
nmtui-connect
|
|
;;
|
|
"Install to Disk")
|
|
/home/stormux/.local/bin/install_to_disk.sh
|
|
;;
|
|
"Set Timezone")
|
|
sudo /home/stormux/.local/bin/set-timezone.sh
|
|
;;
|
|
*".md") /usr/bin/markdown -toc "$GAME" | /usr/bin/w3m -T text/html ;;
|
|
"/usr/bin/"*) $GAME ;;
|
|
esac
|