From d48edfc5f59e9579f808e7e8257cfac1f7bd1dc9 Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@freedombone.net>
Date: Wed, 4 Apr 2018 13:09:50 +0100
Subject: [PATCH] keyserver configuration menu style

---
 src/freedombone-app-keyserver | 31 ++++++++++++-------------------
 1 file changed, 12 insertions(+), 19 deletions(-)

diff --git a/src/freedombone-app-keyserver b/src/freedombone-app-keyserver
index 157555b0f..a66ff41a6 100755
--- a/src/freedombone-app-keyserver
+++ b/src/freedombone-app-keyserver
@@ -531,31 +531,24 @@ function keyserver_remove_key {
 }
 
 function configure_interactive_keyserver {
+    W=(1 $"Remove a key"
+       2 $"Sync with other keyserver"
+       3 $"Edit sync keyservers")
+
     while true
     do
-        data=$(mktemp 2>/dev/null)
-        dialog --backtitle $"Freedombone Control Panel" \
-               --title $"SKS Keyserver" \
-               --radiolist $"Choose an operation:" 12 70 4 \
-               1 $"Remove a key" off \
-               2 $"Sync with other keyserver" off \
-               3 $"Edit sync keyservers" off \
-               4 $"Exit" on 2> "$data"
-        sel=$?
-        case $sel in
-            1) rm -f "$data"
-               return;;
-            255) rm -f "$data"
-                 return;;
-        esac
-        case $(cat "$data") in
+        # shellcheck disable=SC2068
+        selection=$(dialog --backtitle $"Freedombone Administrator Control Panel" --title $"SKS Keyserver" --menu $"Choose an operation, or ESC to exit:" 11 60 3 "${W[@]}" 3>&2 2>&1 1>&3)
+
+        if [ ! "$selection" ]; then
+            break
+        fi
+
+        case $selection in
             1) keyserver_remove_key;;
             2) keyserver_sync;;
             3) keyserver_edit;;
-            4) rm -f "$data"
-               break;;
         esac
-        rm -f "$data"
     done
 }
 
-- 
GitLab