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 # Add Reaper icons to desktop cat <<- ICON1 > /home/${USER}/Desktop/Reaper.desktop [Desktop Entry] Name=Operation: Reaper Campaign Exec=gzdoom -iwad DOOM2.WAD -file reaper.wad +set dmflags 4521984 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}')" :< /home/${USER}/Desktop/ReaperDM.desktop [Desktop Entry] Name=Operation: Reaper Deathmatch Exec=gzdoom -iwad DOOM2.WAD -file reaper.wad +set dmflags 4521984 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 } 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 # Switch from Woof to GZDoom. if [[ ! -f gzdoom_4.14.2_amd64.deb ]]; then wget https://office.duensing.digital/s/gBDwQ63t5o4SfZx/download/gzdoom_4.14.2_amd64.deb apt-get -y purge woof-doom dpkg -i gzdoom_4.14.2_amd64.deb apt-get -y install -f fi # Do we need to reboot? if [[ ${BE_MICROSOFT} -eq 1 ]]; then shutdown -r now fi }