#!/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 }