From 49ed78444e364ad75ab421488ed5ff6acdfca55e Mon Sep 17 00:00:00 2001
From: XargonWan <xargonwan@gmail.com>
Date: Thu, 31 Mar 2022 20:50:46 +0900
Subject: [PATCH] Fixed startup script (finally)

---
 com.xargon.retrodeck.yml | 29 +++++++++-----------
 desktop_entry            | 11 ++++++++
 retrodeck.sh             | 59 +++++++++++++++++++++-------------------
 3 files changed, 55 insertions(+), 44 deletions(-)
 create mode 100644 desktop_entry

diff --git a/com.xargon.retrodeck.yml b/com.xargon.retrodeck.yml
index 61f56b83..84153cda 100644
--- a/com.xargon.retrodeck.yml
+++ b/com.xargon.retrodeck.yml
@@ -494,15 +494,6 @@ modules:
   - name: retrodeck
     buildsystem: simple
     build-commands:
-    
-        # RA is already doing this no?
-        #- rm -f ${FLATPAK_DEST}/etc/retroarch.cfg
-        #- mv retroarch.cfg ${FLATPAK_DEST}/etc/retroarch.cfg
-
-        # - symlink useful dirs and files in ~/retrodeck
-        # TODO: cannot see home folder at this point, same for es_settings.xml
-        #- ln -s ${FLATPAK_DEST}/etc/retroarch.cfg ~/retrodeck/retroarch.cfg
-        #- ln -s ${FLATPAK_DEST}/share/emulationstation/themes/ ~/retrodeck/
 
         # Prep the ES-DE and RetroArch config files
         - rm -rf /app/share/emulationstation/resources/systems/unix/es_find_rules.xml
@@ -513,10 +504,12 @@ modules:
         - mkdir -p ${FLATPAK_DEST}/retrodeck/
         - cp es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml
         - cp retrodeck-retroarch.cfg ${FLATPAK_DEST}/retrodeck/retrodeck-retroarch.cfg
+        - cp systemfolders.zip ${FLATPAK_DEST}/retrodeck/
 
-        # Logo
+        # Logo, res
         - rm -f /app/share/emulationstation/resources/graphics/splash.svg
         - cp splash.svg /app/share/emulationstation/resources/graphics/splash.svg
+        - cp icon.svg /app/share/icons/hicolor/scalable/apps/com.xargon.retrodeck.svg
 
         # Tools
         - mkdir -p ${FLATPAK_DEST}/retrodeck/tools/
@@ -526,11 +519,12 @@ modules:
         - cp retrodeck.sh /app/bin/retrodeck.sh
         - chmod +x /app/bin/retrodeck.sh
 
+        # Desktop entry
+        - cp desktop_entry /app/share/applications/com.xargon.retrodeck.desktop
+
     #cleanup: ['*']
     sources:
-      #- type: file
-      #  path: retroarch.cfg
-      - type: file # Remove this when/if commited to ES-DE
+      - type: file
         path: es_find_rules.xml
       - type: file
         path: es_settings.xml
@@ -542,8 +536,11 @@ modules:
         path: retrodeck-retroarch.cfg
       - type: file
         path: tools-gamelist.xml
-      - type: file
-        path: res/splash.svg
+      - type: dir
+        path: res
       - type: dir
         path: tools
-    # create desktop entry
\ No newline at end of file
+      - type: file
+        path: desktop_entry
+      - type: file
+        path: systemfolders.zip
\ No newline at end of file
diff --git a/desktop_entry b/desktop_entry
new file mode 100644
index 00000000..636fa691
--- /dev/null
+++ b/desktop_entry
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Name=RetroDECK
+GenericName=Frontend for the libretro API
+Type=Application
+Comment=All you need for emulation on Steam Deck
+Icon=com.xargon.retrodeck
+Exec=
+Terminal=false
+StartupNotify=false
+Keywords=multi;engine;emulator;standalone;steam;deck
+Categories=Game;Emulator;
\ No newline at end of file
diff --git a/retrodeck.sh b/retrodeck.sh
index 6fd2f17f..4b2f8396 100644
--- a/retrodeck.sh
+++ b/retrodeck.sh
@@ -23,49 +23,52 @@ then
         fi
     fi
 
-    kdialog --title "RetroDECK" --msgbox "RetroDECK will initialize the system, please wait a few minutes, a popup will tell you when the process is finished."
+    # initializing ES-DE
 
-    mkdir -p $roms_folder
-    rm -rf /var/config/.emulationstation/ROMs
-    rm -rf /var/config/.emulationstation/roms
-    mkdir -p /var/config/.emulationstation
-    ln -s $roms_folder /var/config/.emulationstation/roms
+    mkdir -p /var/config/retrodeck/tools
 
-    mkdir -p /var/config/.emulationstation
-    rm -rf /var/config/.emulationstation/es_settings.xml
-    rm -rf /var/config/.emulationstation/es_input.xml
-    cp /app/retrodeck/es_settings.xml /var/config/.emulationstation/es_settings.xml
-    cp /app/retrodeck/es_settings.xml /var/config/.emulationstation/es_input.xml
+    # Cleaning
+    rm -rf /var/config/emulationstation/
+    rm ~/retrodeck/bios
+    rm /var/config/retrodeck/tools/*
+
+    ls -ln /var/config/ #DEBUG
+    ls -ln /var/config/emulationstation/.emulationstation #DEBUG
+    read -n 1 -r -s -p $'Press enter to continue...\n' #DEBUG
+
+    kdialog --title "RetroDECK" --msgbox "EmulationStation will now initialize the system, please don't edit the rom location.\nJust select CREATE DIRECTORIES, YES, QUIT buttons.\nRetroDECK will manage the rest."
+
+    mkdir -p /var/config/emulationstation/
+
+    emulationstation --home /var/config/emulationstation
+
+    mv /var/config/emulationstation/ROMs /var/config/emulationstation/ROMs.bak
+    ln -s $roms_folder /var/config/emulationstation/ROMs
+    mv /var/config/emulationstation/ROMs.bak $roms_folder
+
+    # XMLSTARLET HERE
+    cp /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml
 
     mkdir -p ~/retrodeck/saves
     mkdir -p ~/retrodeck/states
     mkdir -p ~/retrodeck/screenshots
 
-    mkdir -p /var/config/retrodeck/tools
     cp -r /app/retrodeck/tools/* /var/config/retrodeck/tools
 
     mkdir -p /var/config/retroarch/system
     ln -s ~/.var/app/com.xargon.retrodeck/config/retroarch/system ~/retrodeck/bios
-        
+
     cp /app/retrodeck/retrodeck-retroarch.cfg /var/config/retroarch/retroarch.cfg
-    
-    mkdir -p /var/config/.emulationstation/gamelists/tools/
-    cp /app/retrodeck/tools-gamelist.xml /var/config/.emulationstation/gamelists/tools/gamelist.xml
+
+    mkdir -p /var/config/emulationstation/.emulationstation/gamelists/tools/
+    cp /app/retrodeck/tools-gamelist.xml /var/config/emulationstation/.emulationstation/custom_systems/tools/gamelist.xml
 
     mkdir -p /var/config/retroarch/cores/
     cp /app/share/libretro/cores/* /var/config/retroarch/cores/
-    
+
     touch ~/retrodeck/.lock
 
     kdialog --title "RetroDECK" --msgbox "Initialization completed, please put your roms in: $roms_folder.\nIf you wish to change the roms location you may use the tool located the tools section of RetroDECK."
-fi
-
-#numFields=$(xmlstarlet sel -t -m '//system' -o "." /app/share/emulationstation/resources/systems/unix/es_systems.xml | wc -c)
-#for i in $(seq 1 $numFields); do
-#    system=$(xmlstarlet sel -t -m "//system[$i]" -v "name" /app/share/emulationstation/resources/systems/unix/es_systems.xml)
-#    if test -d ~/retrodeck/roms/${system}; then
-#        mkdir -p ~/retrodeck/roms/${system}
-#    fi
-#done
-
-emulationstation --home /var/config/
\ No newline at end of file
+else
+    emulationstation --home /var/config/emulationstation
+fi
\ No newline at end of file