#!/bin/bash

# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2020-present Shanti Gilbert (https://github.com/shantigilbert)
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)

case "${1}" in
  "retroarch")
    rm -f /storage/.config/retroarch/retroarch.cfg
    cp -rf /usr/config/retroarch/retroarch.cfg /storage/.config/retroarch/retroarch.cfg
  ;;
  "retroarch-full")
    rm -rf /storage/.config/retroarch
    cp -rf /usr/config/retroarch /storage/.config/
  ;;
  "mednafen")
    rm -f /storage/.config/mednafen/mednafen.cfg
  ;;
  "standalone")
    rm -rf /storage/.config/aethersx2
    cp -rf /usr/config/aethersx2 /storage/.config/

    rm -rf /storage/.config/amiberry
    cp -rf /usr/config/amiberry /storage/.config/

    rm -rf /storage/.config/dolphin-emu
    cp -rf /usr/config/dolphin-emu /storage/.config/

    rm -rf /storage/.config/drastic
    cp -rf /usr/config/drastic /storage/.config/

    rm -rf /storage/.config/duckstation
    cp -rf /usr/config/duckstation /storage/.config/

    rm -rf /storage/.config/flycast
    cp -rf /usr/config/flycast /storage/.config/

    rm -rf /storage/.config/gzdoom
    cp -rf /usr/config/gzdoom /storage/.config/

    rm -rf /storage/.config/hatari
    cp -rf /usr/config/hatari /storage/.config/

    rm -rf /storage/.config/melonDS
    cp -rf /usr/config/melonDS /storage/.config/

    rm -rf /storage/.config/openbor
    cp -rf /usr/config/openbor /storage/.config/

    rm -rf /storage/.config/ppsspp
    cp -rf /usr/config/ppsspp /storage/.config/

    rm -rf /storage/.config/azahar
    cp -rf /usr/config/azahar /storage/.config/

    rm -rf /storage/.config/rpcs3
    cp -rf /usr/config/rpcs3 /storage/.config/
  ;;
  "portmaster")
    rm -rf /storage/.config/PortMaster
    cp -rf /usr/config/PortMaster /storage/.config/
    rm -rf /storage/roms/ports/PortMaster
    unzip /usr/config/PortMaster/release/PortMaster.zip -d /storage/roms/ports/
    chmod +x /storage/roms/ports/PortMaster/PortMaster.sh
  ;;
  "overlays")
    rm -rf $(cat /usr/lib/systemd/system/tmp-*.mount | grep -Eo 'upperdir=.*,' | sed -e 's~upperdir=~~g; s~,~~g')
    sync
    systemctl reboot
  ;;
  "audio")
    systemctl stop pipewire-pulse pipewire-pulse.socket pipewire pipewire.socket wireplumber
    rm -rf /storage/.local/state /storage/.config/pulse /storage/asound*
    systemctl reboot
  ;;
  "ALL")
    swapoff -a 2>/dev/null
    umount /storage/roms 2>/dev/null ||:
    umount /storage/games-external 2>/dev/null ||:
    cd /
    find /storage -mindepth 1 \( ! -regex '^/storage/.update.*' -a ! -regex '^/storage/roms.*' -a ! -regex '^/storage/games-.*' \) -delete 2>/dev/null
    mkdir /storage/.config/
    sync 2>/dev/null
    systemctl reboot
  ;;
esac
