Removed old Yadoom script. It's functionality is in the launcher.
This commit is contained in:
parent
02b8a3e5a2
commit
91d1e29092
@ -1,88 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
|
||||
# Function to check if a file is an IWAD
|
||||
is_iwad() {
|
||||
local file="$1"
|
||||
[[ "${file,,}" =~ ipk3$ ]] && return 0
|
||||
if [[ -f "$file" ]]; then
|
||||
# Extract the first four bytes and check if they match the IWAD signature
|
||||
if hexdump -n 4 -e '4/1 "%02X"' "$file" | grep -q '^49574144$'; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
iwad_menu() {
|
||||
# Extract the Path= lines from the [IWADSearch.Directories] section
|
||||
mapfile -t wadPaths < <(sed -n "/^\[IWADSearch.Directories\]/,/^\[/{/Path=/p;}" "$configFile" | cut -d '=' -f 2)
|
||||
declare -A uniqueWads
|
||||
for i in "${wadPaths[@]}"; do
|
||||
if [[ -d "$i" ]]; then
|
||||
while IFS= read -r -d $'\0' wad; do
|
||||
if is_iwad "$wad"; then
|
||||
wad_name=$(basename "$wad")
|
||||
uniqueWads["${wad_name,,}"]="$wad"
|
||||
fi
|
||||
done < <(find "$i" -follow -maxdepth 1 -type f \( -iname '*.wad' -o -iname '*.ipk3' \) -print0)
|
||||
fi
|
||||
done
|
||||
wadList=("${uniqueWads[@]}")
|
||||
# Set up the menu
|
||||
declare -a wadMenu
|
||||
for path in "${wadList[@]}" ; do
|
||||
title="${path##*/}"
|
||||
title="${title%.*}"
|
||||
wadMenu+=("${title}" "${path}")
|
||||
done
|
||||
# Run yad to display the dialog
|
||||
iwad=$(yad --list \
|
||||
--title="Yadoom" \
|
||||
--text="Select an Iwad" \
|
||||
--column="Iwad" \
|
||||
--column="Path" \
|
||||
--button="Launch:0" \
|
||||
--button="Close:1" \
|
||||
--hide-column=2 \
|
||||
--search-column=1 \
|
||||
--skip-taskbar \
|
||||
"${wadMenu[@]}")
|
||||
yadCode="$?"
|
||||
[[ ${yadCode} -eq 0 ]] || exit 0
|
||||
iwad="${iwad#*|}"
|
||||
iwad="${iwad%|}"
|
||||
}
|
||||
|
||||
configFile="${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom/gzdoom.ini"
|
||||
declare -a gzdoomArgs
|
||||
|
||||
# Process arguments
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
-c)
|
||||
configFile="$2"
|
||||
shift 2
|
||||
;;
|
||||
-iwad|-i)
|
||||
iwad="$2"
|
||||
gzdoomArgs+=("-iwad" "$2")
|
||||
shift 2
|
||||
;;
|
||||
*)
|
||||
gzdoomArgs+=("$1")
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# If no IWAD specified, show the menu
|
||||
if [[ -z "$iwad" ]]; then
|
||||
iwad_menu
|
||||
gzdoomArgs+=("-iwad" "$iwad")
|
||||
fi
|
||||
|
||||
# Launch GZDoom with all arguments
|
||||
gzdoom "${gzdoomArgs[@]}"
|
Loading…
Reference in New Issue
Block a user