116 lines
3.2 KiB
Bash
116 lines
3.2 KiB
Bash
function installMissing() {
|
|
local PACKAGE=$1
|
|
dpkg -s ${PACKAGE} &>/dev/null; [[ $? -eq 1 ]] && apt-get -y install ${PACKAGE}
|
|
}
|
|
|
|
|
|
function unsafeUpdate() {
|
|
|
|
echo "Running user updates."
|
|
|
|
# Clean up after installation.
|
|
if [[ -f install.sh ]]; then
|
|
rm install.sh
|
|
fi
|
|
if [[ -d chromebook-linux ]]; then
|
|
rm -rf chromebook-linux
|
|
fi
|
|
|
|
# Operation: Reaper Beta
|
|
if [[ ! -f DOOM2.WAD ]]; then
|
|
wget https://office.duensing.digital/s/d5P29bmzPAGzpz4/download/DOOM2.WAD
|
|
fi
|
|
if [[ -f reaper.wad ]]; then
|
|
rm -rf reaper.wad
|
|
fi
|
|
# Always get this file so we can hot-patch it.
|
|
wget https://office.duensing.digital/s/kwx77KGJiorEEc6/download/reaper0-6-25f2.wad
|
|
mv reaper0-6-25f2.wad reaper.wad
|
|
|
|
# woof -iwad DOOM2.WAD -file reaper.wad -fullscreen
|
|
# -deathmatch
|
|
|
|
}
|
|
|
|
|
|
function unsafeUpdateRoot() {
|
|
|
|
local BE_MICROSOFT=0
|
|
|
|
echo "Running root updates."
|
|
|
|
# Firmware updates. Would be nice if we could reboot when needed.
|
|
installMissing fwupd
|
|
fwupdmgr refresh -y
|
|
fwupdmgr update -y --no-reboot-check
|
|
|
|
# Handle system updates.
|
|
while : ; do
|
|
apt-get update
|
|
[[ $? -ne 0 ]] || break
|
|
done
|
|
apt-get -fy upgrade
|
|
apt-get -fy dist-upgrade
|
|
apt-get -fy autoremove
|
|
if [[ -f /var/run/reboot-required ]] then
|
|
BE_MICROSOFT=1
|
|
fi
|
|
|
|
# Allow 'user' to reboot machine.
|
|
if [[ ! -f /etc/sudoers.d/userreboot ]]; then
|
|
echo 'user ALL = NOPASSWD: /usr/sbin/halt, /usr/sbin/reboot, /usr/sbin/poweroff' > /etc/sudoers.d/userreboot
|
|
chown root:root /etc/sudoers.d/userreboot
|
|
chmod a-w /etc/sudoers.d/userreboot
|
|
fi
|
|
|
|
# Work around hanging audio bug.
|
|
if [[ ! -f /etc/modprobe.d/alsa-base.conf.original ]]; then
|
|
cp -f /etc/modprobe.d/alsa-base.conf /etc/modprobe.d/alsa-base.conf.original
|
|
echo '#options snd-intel-dspcfg dsp_driver=2' >> /etc/modprobe.d/alsa-base.conf
|
|
echo 'options snd_sof sof_debug=1' >> /etc/modprobe.d/alsa-base.conf
|
|
BE_MICROSOFT=1
|
|
fi
|
|
|
|
# Operation: Reaper Beta
|
|
installMissing woof-doom
|
|
# Add Reaper icons to desktop
|
|
if [[ ! -f /home/${USER}/Desktop/Reaper.desktop ]]; then
|
|
cat <<- ICON1 > /home/${USER}/Desktop/Reaper.desktop
|
|
[Desktop Entry]
|
|
Name=Operation: Reaper Campaign
|
|
Exec=woof -iwad DOOM2.WAD -file reaper.wad -fullscreen
|
|
Icon=io.github.freedoom.Phase1
|
|
Type=Application
|
|
Comment=
|
|
Categories=Game;ActionGame;
|
|
Keywords=first;person;shooter;vanilla;doom;boom;mbf;
|
|
Path=/home/${USER}
|
|
Terminal=false
|
|
StartupNotify=false
|
|
ICON1
|
|
chmod +x "/home/${USER}/Desktop/Reaper.desktop"
|
|
gio set -t string "/home/${USER}/Desktop/Reaper.desktop" metadata::xfce-exe-checksum "$(sha256sum "/home/${USER}/Desktop/Reaper.desktop" | awk '{print $1}')"
|
|
:<<SKIPDM
|
|
cat <<- ICON2 > /home/${USER}/Desktop/ReaperDM.desktop
|
|
[Desktop Entry]
|
|
Name=Operation: Reaper Deathmatch
|
|
Exec=woof -iwad DOOM2.WAD -file reaper.wad -fullscreen
|
|
Icon=io.github.freedoom.Phase1
|
|
Type=Application
|
|
Comment=
|
|
Categories=Game;ActionGame;
|
|
Keywords=first;person;shooter;vanilla;doom;boom;mbf;
|
|
Path=/home/${USER}
|
|
Terminal=false
|
|
StartupNotify=false
|
|
ICON2
|
|
chmod +x "/home/${USER}/Desktop/ReaperDM.desktop"
|
|
gio set -t string "/home/${USER}/Desktop/ReaperDM.desktop" metadata::xfce-exe-checksum "$(sha256sum "/home/${USER}/Desktop/ReaperDM.desktop" | awk '{print $1}')"
|
|
SKIPDM
|
|
fi
|
|
|
|
# Do we need to reboot?
|
|
if [[ ${BE_MICROSOFT} -eq 1 ]]; then
|
|
shutdown -r now
|
|
fi
|
|
}
|