mirror of
https://github.com/dragoonDorise/EmuDeck.git
synced 2025-05-05 16:02:48 +00:00
81 lines
2.9 KiB
Bash
81 lines
2.9 KiB
Bash
#!/bin/bash
|
|
|
|
dialogCLI(){
|
|
local HEIGHT=15
|
|
local HEIGHT=15
|
|
local WIDTH=40
|
|
local CHOICE_HEIGHT=4
|
|
local BACKTITLE="EmuDeck CLI"
|
|
local TITLE="Choose your fate"
|
|
local MENU=$1 ; shift
|
|
local OPTIONS=( "$@" )
|
|
local cliCHOICE
|
|
|
|
cliCHOICE=$(whiptail --clear \
|
|
--backtitle "$BACKTITLE" \
|
|
--title "$TITLE" \
|
|
--menu "$MENU" \
|
|
$HEIGHT $WIDTH $CHOICE_HEIGHT \
|
|
"${OPTIONS[@]}" \
|
|
2>&1 >/dev/tty)
|
|
|
|
echo "$cliCHOICE"
|
|
}
|
|
|
|
function Filebrowser()
|
|
{
|
|
# first parameter is Menu Title
|
|
# second parameter is optional dir path to starting folder
|
|
# otherwise current folder is selected
|
|
|
|
if [ -z $2 ] ; then
|
|
dir_list=$(ls -lhp | awk -F ' ' ' { print $9 " " $5 } ')
|
|
else
|
|
cd "$2"
|
|
dir_list=$(ls -lhp | awk -F ' ' ' { print $9 " " $5 } ')
|
|
fi
|
|
|
|
curdir=$(pwd)
|
|
if [ "$curdir" == "/" ] ; then # Check if you are at root folder
|
|
selection=$(whiptail --title "$1" \
|
|
--menu "PgUp/PgDn/Arrow Enter Selects File/Folder\nor Tab Key\n$curdir" 0 0 0 \
|
|
--cancel-button Cancel \
|
|
--ok-button Select $dir_list 3>&1 1>&2 2>&3)
|
|
else # Not Root Dir so show ../ BACK Selection in Menu
|
|
selection=$(whiptail --title "$1" \
|
|
--menu "PgUp/PgDn/Arrow Enter Selects File/Folder\nor Tab Key\n$curdir" 0 0 0 \
|
|
--cancel-button Cancel \
|
|
--ok-button Select ../ BACK $dir_list 3>&1 1>&2 2>&3)
|
|
fi
|
|
|
|
RET=$?
|
|
if [ $RET -eq 1 ]; then # Check if User Selected Cancel
|
|
return 1
|
|
elif [ $RET -eq 0 ]; then
|
|
if [[ -d "$selection" ]]; then # Check if Directory Selected
|
|
Filebrowser "$1" "$selection"
|
|
elif [[ -f "$selection" ]]; then # Check if File Selected
|
|
if [[ $selection == *$filext ]]; then # Check if selected File has .jpg extension
|
|
if (whiptail --title "Confirm Selection" --yesno "DirPath : $curdir\nFileName: $selection" 0 0 \
|
|
--yes-button "Confirm" \
|
|
--no-button "Retry"); then
|
|
filename="$selection"
|
|
filepath="$curdir" # Return full filepath and filename as selection variables
|
|
else
|
|
Filebrowser "$1" "$curdir"
|
|
fi
|
|
else # Not correct extension so Inform User and restart
|
|
whiptail --title "ERROR: File Must have $filext Extension" \
|
|
--msgbox "$selection\nYou Must Select a $filext file" 0 0
|
|
Filebrowser "$1" "$curdir"
|
|
fi
|
|
else
|
|
# Could not detect a file or folder so Try Again
|
|
whiptail --title "ERROR: Selection Error" \
|
|
--msgbox "Error Changing to Path $selection" 0 0
|
|
Filebrowser "$1" "$curdir"
|
|
fi
|
|
fi
|
|
}
|
|
|