mirror of
https://github.com/RetroDECK/components-archive.git
synced 2026-09-22 14:36:38 +00:00
156 lines
6.8 KiB
Bash
Executable file
156 lines
6.8 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Symlink custom.fs-uae to $storage_path/FS-UAE/custom.fs-uae
|
|
# Make a function that copies AmigaVision.fdi to $roms_path/amiga/ If enabled.
|
|
# If disabled it deletes the file $roms_path/amiga/AmigaVision.fdi if it's there during boot.
|
|
|
|
export fs_uae_config_amiga1200="$XDG_CONFIG_HOME/fs-uae/RetroDECK-amiga1200.fs-uae"
|
|
export fs_uae_config_amiga600="$XDG_CONFIG_HOME/fs-uae/RetroDECK-amiga600.fs-uae"
|
|
export fs_uae_config_amigacd32="$XDG_CONFIG_HOME/fs-uae/RetroDECK-amigacd32.fs-uae"
|
|
export fs_uae_config_cdtv="$XDG_CONFIG_HOME/fs-uae/RetroDECK-cdtv.fs-uae"
|
|
export amigavision_config="$XDG_CONFIG_HOME/fs-uae/AmigaVision.fs-uae"
|
|
export custom_config_amiga600="$XDG_CONFIG_HOME/fs-uae/Custom/custom-amiga600.fs-uae"
|
|
export custom_config_amiga1200="$XDG_CONFIG_HOME/fs-uae/Custom/custom-amiga1200.fs-uae"
|
|
|
|
|
|
_prepare_component::fs-uae() {
|
|
local action="$1"
|
|
shift
|
|
|
|
local component_config="$(get_own_component_path)/rd_config"
|
|
local amiga_system_plugins="$(get_own_component_path)/System"
|
|
|
|
case "$action" in
|
|
|
|
reset)
|
|
log i "----------------------"
|
|
log i "Resetting FS-UAE"
|
|
log i "----------------------"
|
|
|
|
create_dir -d "$XDG_CONFIG_HOME/fs-uae/"
|
|
create_dir -d "$XDG_DATA_HOME/fs-uae/"
|
|
create_dir "$storage_path/fs-uae/AmigaVision/shared"
|
|
|
|
cp -fvr "$component_config/"* "$XDG_CONFIG_HOME/fs-uae/"
|
|
|
|
dir_prep "$storage_path/FS-UAE/System" "$XDG_DATA_HOME/fs-uae/System"
|
|
|
|
cp -fvr "$amiga_system_plugins/"* "$XDG_DATA_HOME/fs-uae/System"
|
|
|
|
dir_prep "$bios_path" "$XDG_DATA_HOME/fs-uae/Kickstarts"
|
|
|
|
dir_prep "$logs_path/FS-UAE/Logs" "$XDG_DATA_HOME/fs-uae/Logs"
|
|
dir_prep "$logs_path/FS-UAE/Cache/Logs" "$XDG_DATA_HOME/fs-uae/Cache/Logs"
|
|
|
|
dir_prep "$states_path/amiga/FS-UAE" "$XDG_DATA_HOME/fs-uae/Save States"
|
|
|
|
dir_prep "$screenshots_path/FS-UAE/Screenshots" "$XDG_DATA_HOME/fs-uae/Screenshots"
|
|
|
|
dir_prep "$storage_path/FS-UAE/CD-ROMs" "$XDG_DATA_HOME/fs-uae/CD-ROMs"
|
|
dir_prep "$storage_path/FS-UAE/Configurations" "$XDG_DATA_HOME/fs-uae/Configurations"
|
|
dir_prep "$storage_path/FS-UAE/Controllers" "$XDG_DATA_HOME/fs-uae/Controllers"
|
|
dir_prep "$storage_path/FS-UAE/Covers" "$XDG_DATA_HOME/fs-uae/Covers"
|
|
dir_prep "$storage_path/FS-UAE/Custom" "$XDG_CONFIG_HOME/fs-uae/Custom"
|
|
dir_prep "$storage_path/FS-UAE/Flash Memory" "$XDG_DATA_HOME/fs-uae/Flash Memory"
|
|
dir_prep "$storage_path/FS-UAE/Floppy Overlays" "$XDG_DATA_HOME/fs-uae/Floppy Overlays"
|
|
dir_prep "$storage_path/FS-UAE/Floppies" "$XDG_DATA_HOME/fs-uae/Floppies"
|
|
dir_prep "$storage_path/FS-UAE/Hard Drives" "$XDG_DATA_HOME/fs-uae/Hard Drives"
|
|
dir_prep "$storage_path/FS-UAE/Themes" "$XDG_DATA_HOME/fs-uae/Themes"
|
|
dir_prep "$storage_path/FS-UAE/Titles" "$XDG_DATA_HOME/fs-uae/Titles"
|
|
|
|
sed -i "s|^hard_drive_0 = .*|hard_drive_0 = $storage_path/FS-UAE/AmigaVision/AmigaVision.hdf|" $amigavision_config
|
|
sed -i "s|^hard_drive_1 = .*|hard_drive_1 = $storage_path/FS-UAE/AmigaVision/AmigaVision-Saves.hdf|" $amigavision_config
|
|
sed -i "s|^hard_drive_2 = .*|hard_drive_1 = $storage_path/FS-UAE/AmigaVision/shared|" $amigavision_config
|
|
|
|
;;
|
|
|
|
postmove)
|
|
log i "----------------------"
|
|
log i "Post-moving FS-UAE"
|
|
log i "----------------------"
|
|
|
|
dir_prep "$bios_path" "$XDG_DATA_HOME/fs-uae/Kickstarts"
|
|
dir_prep "$bios_path" "$storage_path/FS-UAE/AmigaVision/Kickstarts"
|
|
|
|
dir_prep "$logs_path/FS-UAE/Logs" "$XDG_DATA_HOME/fs-uae/Logs"
|
|
dir_prep "$logs_path/FS-UAE/Cache/Logs" "$XDG_DATA_HOME/fs-uae/Cache/Logs"
|
|
|
|
dir_prep "$states_path/amiga/FS-UAE" "$XDG_DATA_HOME/fs-uae/Save States"
|
|
|
|
dir_prep "$screenshots_path/FS-UAE/Screenshots" "$XDG_DATA_HOME/fs-uae/Screenshots"
|
|
|
|
dir_prep "$storage_path/FS-UAE/CD-ROMs" "$XDG_DATA_HOME/fs-uae/CD-ROMs"
|
|
dir_prep "$storage_path/FS-UAE/Configurations" "$XDG_DATA_HOME/fs-uae/Configurations"
|
|
dir_prep "$storage_path/FS-UAE/Controllers" "$XDG_DATA_HOME/fs-uae/Controllers"
|
|
dir_prep "$storage_path/FS-UAE/Covers" "$XDG_DATA_HOME/fs-uae/Covers"
|
|
dir_prep "$storage_path/FS-UAE/Custom" "$XDG_CONFIG_HOME/fs-uae/Custom"
|
|
dir_prep "$storage_path/FS-UAE/Flash Memory" "$XDG_DATA_HOME/fs-uae/Flash Memory"
|
|
dir_prep "$storage_path/FS-UAE/Floppy Overlays" "$XDG_DATA_HOME/fs-uae/Floppy Overlays"
|
|
dir_prep "$storage_path/FS-UAE/Floppies" "$XDG_DATA_HOME/fs-uae/Floppies"
|
|
dir_prep "$storage_path/FS-UAE/Hard Drives" "$XDG_DATA_HOME/fs-uae/Hard Drives"
|
|
dir_prep "$storage_path/FS-UAE/Themes" "$XDG_DATA_HOME/fs-uae/Themes"
|
|
dir_prep "$storage_path/FS-UAE/Titles" "$XDG_DATA_HOME/fs-uae/Titles"
|
|
dir_prep "$storage_path/FS-UAE/System" "$XDG_DATA_HOME/fs-uae/System"
|
|
|
|
sed -i "s|^hard_drive_0 = .*|hard_drive_0 = $storage_path/FS-UAE/AmigaVision/AmigaVision.hdf|" $amigavision_config
|
|
sed -i "s|^hard_drive_1 = .*|hard_drive_1 = $storage_path/FS-UAE/AmigaVision/AmigaVision-Saves.hdf|" $amigavision_config
|
|
sed -i "s|^hard_drive_2 = .*|hard_drive_1 = $storage_path/FS-UAE/AmigaVision/shared|" $amigavision_config
|
|
|
|
;;
|
|
|
|
esac
|
|
}
|
|
|
|
_set_setting_value::fs-uae() {
|
|
local file="$1"
|
|
local name=$(sed_escape_pattern "$2")
|
|
local value=$(sed_escape_replacement "$3")
|
|
local sed_cmd
|
|
sed_cmd="s^\^${name} = '.*'^${name} = '${value}'^; t end;"
|
|
sed_cmd+="s^\^${name} =.*^${name} = ${value}^; :end"
|
|
sed -i "$sed_cmd" "$file"
|
|
}
|
|
|
|
_get_setting_value::fs-uae() {
|
|
local file="$1" name="$2"
|
|
|
|
KEY="$name" awk -F'=' \
|
|
'BEGIN { key=ENVIRON["KEY"] }
|
|
index($0, key " =") == 1 {
|
|
val = substr($0, index($0,"=")+2)
|
|
gsub(/^'"'"'|'"'"'$/, "", val)
|
|
print val; exit
|
|
}' "$file"
|
|
}
|
|
|
|
fs-uae_amigavision_toggle() {
|
|
local file="$roms_path/amiga/AmigaVision.fdi"
|
|
|
|
local response
|
|
response=$(rd_zenity --question --no-wrap \
|
|
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
|
--title="AmigaVision" \
|
|
--ok-label="Enable" \
|
|
--cancel-label="Cancel" \
|
|
--extra-button="Disable" \
|
|
--text="<big><b>AmigaVision in ES-DE under the Commodore Amiga menu.</b></big>\n\nEnable or disable AmigaVision?")
|
|
|
|
local rc=$?
|
|
|
|
if [ $rc -eq 0 ]; then
|
|
touch "$file"
|
|
rd_zenity --info --no-wrap \
|
|
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
|
--title="Success" \
|
|
--text="AmigaVision has been enabled.\n\nA restart of RetroDECK is required for the entry to appear." \
|
|
--width=400
|
|
elif [ "$response" = "Disable" ]; then
|
|
[[ -f "$file" ]] && rm "$file"
|
|
rd_zenity --info --no-wrap \
|
|
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
|
--title="Success" \
|
|
--text="AmigaVision has been disabled." \
|
|
--width=400
|
|
fi #
|
|
}
|