Hi All
thanks for the help on this, I am slowly getting somewhere with this. For now, and with the help, I am going to get the option menu working, so this allows a single option to be selected from the menu and run, then goes back to the menu for the user to choose the next option if needed. Once I am more comfortable with this, I can look at doing something with the checkbox component of whiptail etc. Thanks again Regards Paul On 31/08/2019 19:52, Paul Sutton wrote: > On 31/08/2019 08:11, Paul Sutton wrote: >> On 30/08/2019 18:11, Greg Wooledge wrote: >>> On Fri, Aug 30, 2019 at 05:31:50PM +0100, Paul Sutton wrote: >>>> What tool is used to produce the graphical interface for programs such >>>> as tasksel >>> A program named dialog, or whiptail which is basically "dialog lite". >>> Both of these are in packages with the same name as the program. >>> >>> ii dialog 1.3-20190211-1 amd64 Displays user-friendly >>> dialog box >>> ii whiptail 0.52.20-8 amd64 Displays user-friendly >>> dialog box >> Cool thanks for this, I will have a look. >> >> Regards >> >> Paul > > Another question > > Using whiptail and trying to add a gui wrapper around a shell script I > wrote to add a menu to the update process. > > #!/bin/bash > echo "This script MUST be run with root priviledges" > echo > echo "Enter number of the option you would like" > echo > OPTIONS="Update List Upgrade Autoremove Clean Quit" > echo > select opt in $OPTIONS; do > if [ "$opt" = "Update" ] ; then > echo Update > apt update > elif [ "$opt" = "List" ] ; then > echo "List Upgradable package" > apt upgrade > elif [ "$opt" = "Upgrade" ] ; then > echo "Upgrade packages" > apt upgrade -y > elif [ "$opt" = "Autoremove" ] ; then > echo "Autoremove packages" > apt autoremove > elif [ "$opt" = "Clean" ] ; then > echo "Clean Up" > apt clean > elif [ "$opt" = "Quit" ] ; then > echo "Thank you and goodbye" > exit > else > echo "bad option" > fi > done > > > The above works fine > > > I am now trying to create a checkbox option menu so that the user can > choose which options are needed then when pressing ok these are executed > in order. > > > whiptail --title "Check list example" --checklist \ > "Choose user's permissions" 20 78 4 \ > "NET_OUTBOUND" "Allow connections to other hosts" ON \ > "NET_INBOUND" "Allow connections from other hosts" OFF \ > "LOCAL_MOUNT" "Allow mounting of local devices" OFF \ > "REMOTE_MOUNT" "Allow mounting of remote devices" OFF > > I am just struggling to figure out how to : > > take the above, if the user chooses say 1,2 and 4 then the commands > associated with those options are executed. > > so I could edit the above to say for the first option > > "UPDATE" "RUN apt update" OFF \ > > Then if that option is selected it runs > apt update > > So another example I found to try and help me was > > #!/bin/bash > DISTROS=$(whiptail --title "Test Checklist Dialog" --checklist \ > "Choose preferred Linux distros" 15 40 4 \ > "debian" "Venerable Debian" ON \ > "ubuntu" "Popular Ubuntu" OFF \ > "centos" "Stable CentOS" ON \ > "mint" "Rising Star Mint" OFF 3>&1 1>&2 2>&3) > > exitstatus=$? > if [ $exitstatus = 0 ]; then > echo "Your favorite distros are:" $DISTROS > else > echo "You chose Cancel." > fi > > But I am still confused as to how to actually take each selected option and > use if / else statements to do something with this. I think the issue is I > don't really understand stderr properly or how to capture more than one > option. > > Been trying different things for about an hour, so can keep trying just not > getting very far. > > So far I have come up with the following for what I trying to do. So can add > / remove options to the checklist menu ok. > > whiptail --title "Check list example" --checklist \ > "Choose user's permissions" 20 40 4 \ > "Hello" "Print Hello" OFF \ > "Goodbye" "Print Goodbye" OFF \ > "CYA" "Print cya" OFF \ > > CHOICEs=$? > > echo $CHOICEs > echo $? > > which just outputs for example > > "Hello" "Goodbye"0 > 0 > > > https://en.wikibooks.org/wiki/Bash_Shell_Scripting/Whiptail is sort of useful > for getting menus up but not doing anything with the output, it seems to > assume people know how to do that confidently. > > Thanks > > Paul > -- Paul Sutton http://www.zleap.net gnupg : 7D6D B682 F351 8D08 1893 1E16 F086 5537 D066 302D https://fediverse.party/ - zl...@social.isurf.ca