EmuDeck/install.sh
Dragoon Dorise 1f89ab30f4
Merge from early - CloudSync 2.0, Pegasus, Darwin support (#886)
* add json for apotris.

this PR adds the needed json for accessing Apotris.

* fix pcsx2 cloud

* decky functions + Customization moved inside every emulator _init

* Decky_setClourd

* arSnes var

* last touch

* test

* Darwin wip

* darwin wip

* old EmuAI

* SRM

* RA + SRM + ESDE

* Moving more if darwin to override.sh

* Moving more if darwin to override.sh

* installToolAI + darwin ifs cleanups, more overrides :)

* fi fix

* fixed SRM parsers with ,,

* fix rm dmg

* RA flatpak first

* darwin install

* darwin fixes

* darwinnnn

* jsonjson

* darwin srm

* fix launchers

* SRM env vars moved to a function + override to darwin

* ares out for now

* fix flycast broking everything

* dont check if.cef-enable-remote-debugging

* better zenity

* fix watcher

* zenity fix

* cloudSync provider detection

* fixed paths fix

* darwin fixed paths

* fixed paths fix

* enable cloudsync

* no appinit

* last minute fixes

* weird fixes

* hash fix?

* this needs a proper cleanup...

* fixed?

* back to linkToSaveFolder for now

* better duplicate detection

* parser disabled

* cloudSync final touches

* darwin installation

* improvements

* customSRM

* Revert "customSRM"

This reverts commit 2787d2282c.

* first batch

* second batch

* SGBC + Jaguar parsers

* Pegasus settings and functions

* proper order

* Path fixed

* install on setup

* SRM parser

* icon

* early beta

* chimeraOS improvements

# Conflicts:
#	setup.sh

* cosmetic

* helpers: Fix FlatPak installed check (#875)

* chimeraOS retroarch

* clear console

* Steam installation

* fix shellcheck

* path fixes

* fix SRM

* =

* Steam-ROM-Manager

* srm new path fix

* SRM_IsInstalled

* cloudsync wtf

* SRM_IsInstalled

* Steam ROM Manager proper name

* ROM

* srm stuff

* SRM_migration

* icon

* fix savedownload

* launchers

* srm icon

* ROM

* ummm

* fixes installToolAI

* ESDE Migration

* RetroArch_setConfigOverride  fix

* fix RA

* fix PCSX2QT

* back to flatpaks

* EmuDecky no internet message

* noInternet EmuDecky

* pegasus theme installer

* pegasus launchers

* Pegasus install Darwin

* Pegasus install Darwin

* Init pegasus

* ESDE Theme

* =

* >

* override getEmuInstallStatus

---------

Co-authored-by: Glazed_Belmont <48196637+GlaZedBelmont@users.noreply.github.com>
2023-10-10 22:20:54 +02:00

112 lines
4 KiB
Bash

#!/bin/bash
linuxID=$(lsb_release -si)
if [ $linuxID != "ChimeraOS" ]; then
echo "installing EmuDeck"
elif [ $linuxID != "SteamOS" ]; then
zenityAvailable=$(command -v zenity &> /dev/null && echo true)
if [[ $zenityAvailable = true ]];then
PASSWD="$(zenity --password --title="Password Entry" --text="Enter you user sudo password to install required depencies" 2>/dev/null)"
echo "$PASSWD" | sudo -v -S
ans=$?
if [[ $ans == 1 ]]; then
#incorrect password
PASSWD="$(zenity --password --title="Password Entry" --text="Password was incorrect. Try again. (Did you remember to set a password for linux before running this?)" 2>/dev/null)"
echo "$PASSWD" | sudo -v -S
ans=$?
if [[ $ans == 1 ]]; then
text="$(printf "<b>Password not accepted.</b>\n Expert mode tools which require a password will not work. Disabling them.")"
zenity --error \
--title="EmuDeck" \
--width=400 \
--text="${text}" 2>/dev/null
setSetting doInstallPowertools false
setSetting doInstallGyro false
fi
fi
fi
SCRIPT_DIR=$( cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
function log_err {
echo "$@" >&2
}
function script_failure {
log_err "An error occurred:$([ -z "$1" ] && " on line $1" || "(unknown)")."
log_err "Installation failed!"
exit
}
#trap 'script_failure $LINENO' ERR
echo "Installing EmuDeck dependencies..."
if command -v apt-get >/dev/null; then
echo "Installing packages with apt..."
DEBIAN_DEPS="jq zenity flatpak unzip bash libfuse2 git rsync whiptail"
sudo killall apt apt-get
sudo apt-get -y update
sudo apt-get -y install $DEBIAN_DEPS
elif command -v pacman >/dev/null; then
echo "Installing packages with pacman..."
ARCH_DEPS="steam jq zenity flatpak unzip bash fuse2 git rsync whiptail"
sudo pacman --noconfirm -Syu
sudo pacman --noconfirm -S $ARCH_DEPS
elif command -v dnf >/dev/null; then
echo "Installing packages with dnf..."
FEDORA_DEPS="jq zenity flatpak unzip bash fuse git rsync whiptail"
sudo dnf -y upgrade
sudo dnf -y install $FEDORA_DEPS
elif command -v zypper >/dev/null; then
echo "Installing packages with zypper..."
SUSE_DEPS="steam jq zenity flatpak unzip bash libfuse2 git rsync whiptail"
sudo zypper --non-interactive up
sudo zypper --non-interactive install $SUSE_DEPS
elif command -v xbps-install >/dev/null; then
echo "Installing packages with xbps..."
VOID_DEPS="steam jq zenity flatpak unzip bash fuse git rsync whiptail"
sudo xbps-install -Syu
sudo xbps-install -Sy $VOID_DEPS
else
log_err "Your Linux distro $linuxID is not supported by this script. We invite to open a PR or help us with adding your OS to this script. https://github.com/dragoonDorise/EmuDeck/issues"
exit 1
fi
# this could be replaced to immediately start the EmuDeck setup script
echo "All prerequisite packages have been installed. EmuDeck will be installed now!"
fi
set -eo pipefail
report_error() {
FAILURE="$(caller): ${BASH_COMMAND}"
echo "Something went wrong!"
echo "Error at ${FAILURE}"
}
trap report_error ERR
EMUDECK_GITHUB_URL="https://api.github.com/repos/EmuDeck/emudeck-electron-early/releases/latest"
EMUDECK_URL="$(curl -s ${EMUDECK_GITHUB_URL} | grep -E 'browser_download_url.*AppImage' | cut -d '"' -f 4)"
mkdir -p ~/Applications
curl -L "${EMUDECK_URL}" -o ~/Applications/EmuDeck.AppImage 2>&1 | stdbuf -oL tr '\r' '\n' | sed -u 's/^ *\([0-9][0-9]*\).*\( [0-9].*$\)/\1\n#Download Speed\:\2/' | zenity --progress --title "Downloading EmuDeck" --width 600 --auto-close --no-cancel 2>/dev/null
chmod +x ~/Applications/EmuDeck.AppImage
~/Applications/EmuDeck.AppImage