#!/bin/bash # Define URLs BATOCERA_WINE_MANAGER_URL="https://github.com/Gr3gorywolf/batocera_wine_manager/releases/latest/download/batocera_wine_manager.zip" # Define paths TEMP_FOLDER="/userdata/system/temp" WINE_MANAGER_FOLDER="/userdata/system/wine_manager" ROMS_PORTS_FOLDER="/userdata/roms/ports" IMAGE_FOLDER="$ROMS_PORTS_FOLDER/images" DESKTOP_FOLDER="/usr/share/applications" xml_file="/userdata/roms/ports/gamelist.xml" WINE_MANAGER_EXEC="/userdata/system/wine_manager/batocera_wine_manager" echo "Initiallizing install" # Create temporary folder if it doesn't exist mkdir -p "$TEMP_FOLDER" echo "Downloading.." # Download Batocera Wine Manager zip wget -P "$TEMP_FOLDER" "$BATOCERA_WINE_MANAGER_URL" echo "Extracting.." # Unzip Batocera Wine Manager to /userdata/system/wine_manager rm -rf $WINE_MANAGER_FOLDER unzip "$TEMP_FOLDER/batocera_wine_manager.zip" -d "$WINE_MANAGER_FOLDER" echo "Installing..." chmod +x $WINE_MANAGER_EXEC # Copy scripts from extracted folder to /userdata/roms/ports and also the keys mapping cp "$WINE_MANAGER_FOLDER/batocera_wine_manager.sh" "$ROMS_PORTS_FOLDER/wine_manager.sh" cp "$WINE_MANAGER_FOLDER/enable_redist_install.sh" "$ROMS_PORTS_FOLDER/enable_redist_install.sh" cp "$WINE_MANAGER_FOLDER/disable_redist_install.sh" "$ROMS_PORTS_FOLDER/disable_redist_install.sh" cp "$WINE_MANAGER_FOLDER/data/flutter_assets/assets/data/pad2keys.json" "$ROMS_PORTS_FOLDER/wine_manager.sh.keys" # Download image and put it in the specified location mkdir -p "$IMAGE_FOLDER" cp "$WINE_MANAGER_FOLDER/data/flutter_assets/assets/icons/app-icon.png" "$IMAGE_FOLDER/batocera_wine_manager.png" # inserts the batocera wine shortcut to the corresponding path if [ ! -f "$xml_file" ]; then echo ' ' > "$xml_file" echo "Created new XML file: $xml_file" fi xml_entry=' ./wine_manager.sh Wine manager Manage the batocera proton wine versions 0 ./images/batocera_wine_manager.png gr3gorywolf 1 en ' if ! grep -q 'Wine manager' "$xml_file"; then # Insert the entry into the XML file awk -v entry="$xml_entry" '/<\/gameList>/ {print entry} 1' "$xml_file" > tmpfile && mv tmpfile "$xml_file" echo "Entry added successfully." else echo "Entry already exists." fi # Create .desktop file shortcut="$TEMP_FOLDER/batocera_wine_manager.desktop" rm -rf $shortcut echo "[Desktop Entry]" >> $shortcut echo "Version=1.0" >> $shortcut echo "Icon=/userdata/system/wine_manager/data/flutter_assets/assets/icons/app-icon.png" >> $shortcut echo "Exec=$WINE_MANAGER_EXEC" >> $shortcut echo "Terminal=false" >> $shortcut echo "Type=Application" >> $shortcut echo "Categories=Game;batocera.linux;" >> $shortcut echo "Name=Batocera Wine Manager" >> $shortcut # Move .desktop file to /usr/share/applications mv "$TEMP_FOLDER/batocera_wine_manager.desktop" "$DESKTOP_FOLDER" # Clean up temporary files rm -rf "$TEMP_FOLDER" echo "Done!"