#!/bin/bash { #//////////////////////////////////// # DietPi Launcher # #//////////////////////////////////// # Created by Daniel Knight / daniel.knight@dietpi.com / dietpi.com # #//////////////////////////////////// # # Info: # - filename /DietPi/dietpi/dietpi-launcher # - Whiptail menu with list of all DietPi programs etc. # #//////////////////////////////////// #Import DietPi-Globals --------------------------------------------------------------- . /DietPi/dietpi/func/dietpi-globals G_CHECK_ROOT_USER G_CHECK_ROOTFS_RW export G_PROGRAM_NAME='DietPi-Launcher' #Import DietPi-Globals --------------------------------------------------------------- #///////////////////////////////////////////////////////////////////////////////////// # MENUS #///////////////////////////////////////////////////////////////////////////////////// PROGRAM_NAME="DietPi-Launcher" CHOICE=0 OPTION=0 TARGETMENUID=0 LAST_SELECTED_ITEM="dietpi-config" #TARGETMENUID=0 Menu_Main(){ local option_name=() option_name+=("" "────Install Optimized Software──────────────");((index++)) option_name+=("DietPi-Software" "Install optimized software thats ready to run.");((index++)) option_name+=("" "────Configuration───────────────────────────");((index++)) option_name+=("DietPi-Config" "Feature rich config tool for your device.");((index++)) if (( $(dpkg --get-selections | grep -ci -m1 '^alsa-utils') )); then option_name+=("DietPi-JustBoom" "Launches EQ and MPD audio options menu") fi option_name+=("DietPi-AutoStart" "Choose what software runs after boot.");((index++)) #+ add dietpi-cloudshell if installed. if [ -f /DietPi/dietpi/.installed ] && (( $(cat /DietPi/dietpi/.installed | grep -ci -m1 'aSOFTWARE_INSTALL_STATE\[62\]=2') )); then option_name+=("DietPi-CloudShell" "Adjust update rate, scenes settings and more.");((index++)) fi option_name+=("DietPi-Cron" "Modify the start times of cron jobs.");((index++)) option_name+=("DietPi-Process_Tool" "Tweak Nice, Affinity, Schedulers for programs.");((index++)) option_name+=("DietPi-Drive_Manager" "Setup and control multiple external drives.");((index++)) option_name+=("" "────DietPi Updates──────────────────────────");((index++)) option_name+=("DietPi-Update" "Keep your DietPi system upto date.");((index++)) option_name+=("" "────Backups / Sync──────────────────────────");((index++)) option_name+=("DietPi-Backup" "Backup and restore your DietPi system.");((index++)) option_name+=("DietPi-Sync" "Duplicate (Sync) one directory to another.");((index++)) option_name+=("" "────Maintenance─────────────────────────────");((index++)) option_name+=("DietPi-Cleaner" "Remove unwanted junk from your system.");((index++)) option_name+=("" "────Misc────────────────────────────────────");((index++)) option_name+=("DietPi-BugReport" "Found a bug? Let us know!");((index++)) option_name+=("DietPi-CpuInfo" "Displays CPU Temp, frequencies, type etc.");((index++)) option_name+=("DietPi-LetsEncrypt" "Frontend for Lets Encrypt, free SSL certs");((index++)) option_name+=("DietPi-MorseCode" "Converts and outputs a text file to morsecode.");((index++)) OPTION=$(whiptail --title "$PROGRAM_NAME" --menu "Please select a program to run:" --cancel-button "Exit" --backtitle "$PROGRAM_NAME" --default-item "$LAST_SELECTED_ITEM" 18 76 10 "${option_name[@]}" 3>&1 1>&2 2>&3) CHOICE=$? unset option_name #Run program if (( $CHOICE == 0 )); then if [ "$OPTION" != "" ]; then LAST_SELECTED_ITEM="$OPTION" #convert to lowercase local command=$(echo "${OPTION,,}") #Run if [ -f "/DietPi/dietpi/$command" ]; then /DietPi/dietpi/"$command" # - different location elif [ -f "/DietPi/dietpi/misc/$command" ]; then /DietPi/dietpi/misc/"$command" # - different location elif [ -f "/DietPi/dietpi/func/$command" ]; then /DietPi/dietpi/func/"$command" fi #+ Wait for user input. if [ "$command" = "dietpi-cpuinfo" ] || [ "$command" = "dietpi-update" ] || [ "$command" = "dietpi-morsecode" ]; then echo -e "" read -p " - Press any key to exit...." fi fi #Exit else whiptail --title "Exit $PROGRAM_NAME?" --yesno "Exit $PROGRAM_NAME?" --backtitle "$PROGRAM_NAME" --yes-button "Ok" --no-button "Back" --defaultno 9 55 CHOICE=$? if (( $CHOICE == 0 )); then TARGETMENUID=-1 fi fi } #///////////////////////////////////////////////////////////////////////////////////// # Main Loop #///////////////////////////////////////////////////////////////////////////////////// #Start Menu while (( $TARGETMENUID > -1 )); do #Clear Screen buffer clear if (( $TARGETMENUID == 0 )); then Menu_Main fi done #----------------------------------------------------------------------------------- exit #----------------------------------------------------------------------------------- }