From ee09697ddb16a8c06fe18b754706140cf8c595a8 Mon Sep 17 00:00:00 2001
From: tteckster <tteckster@gmail.com>
Date: Mon, 9 Jan 2023 14:39:36 -0500
Subject: [PATCH] Update and rename alpine-v4.sh to alpine-v5.sh

---
 ct/{alpine-v4.sh => alpine-v5.sh} | 85 +++++++++++++++++++++++--------
 1 file changed, 64 insertions(+), 21 deletions(-)
 rename ct/{alpine-v4.sh => alpine-v5.sh} (88%)

diff --git a/ct/alpine-v4.sh b/ct/alpine-v5.sh
similarity index 88%
rename from ct/alpine-v4.sh
rename to ct/alpine-v5.sh
index a95cc37d..ce28c2a8 100644
--- a/ct/alpine-v4.sh
+++ b/ct/alpine-v5.sh
@@ -1,4 +1,17 @@
 #!/usr/bin/env bash
+function header_info {
+  cat <<"EOF"
+    ___ v5 __      _          
+   /   |  / /___  (_)___  ___ 
+  / /| | / / __ \/ / __ \/ _ \
+ / ___ |/ / /_/ / / / / /  __/
+/_/  |_/_/ .___/_/_/ /_/\___/ 
+        /_/                   
+
+EOF
+}
+clear
+header_info
 echo -e "Loading..."
 APP="Alpine"
 var_disk="0.1"
@@ -7,7 +20,7 @@ var_ram="512"
 var_os="alpine"
 var_version="3.16"
 NSAPP=$(echo ${APP,,} | tr -d ' ')
-NEXTID=$(pvesh get /cluster/nextid)
+var_install="${NSAPP}-v5-install"
 INTEGER='^[0-9]+$'
 YW=$(echo "\033[33m")
 BL=$(echo "\033[36m")
@@ -19,6 +32,7 @@ CL=$(echo "\033[m")
 BFR="\\r\\033[K"
 HOLD="-"
 CM="${GN}✓${CL}"
+CROSS="${RD}✗${CL}"
 set -o errexit
 set -o errtrace
 set -o nounset
@@ -34,32 +48,22 @@ function error_exit() {
   echo -e "$flag $msg" 1>&2
   exit $EXIT
 }
-if (whiptail --title "${APP} LXC" --yesno "This will create a New ${APP} LXC. Proceed?" 10 58); then
-  echo "User selected Yes"
-else
-  clear
-  echo -e "⚠ User exited script \n"
-  exit
-fi
-function header_info {
-  cat <<"EOF"
-    ___ v4 __      _          
-   /   |  / /___  (_)___  ___ 
-  / /| | / / __ \/ / __ \/ _ \
- / ___ |/ / /_/ / / / / /  __/
-/_/  |_/_/ .___/_/_/ /_/\___/ 
-        /_/                   
 
-EOF
-}
 function msg_info() {
   local msg="$1"
   echo -ne " ${HOLD} ${YW}${msg}..."
 }
+
 function msg_ok() {
   local msg="$1"
   echo -e "${BFR} ${CM} ${GN}${msg}${CL}"
 }
+
+function msg_error() {
+    local msg="$1"
+    echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}"
+}
+
 function PVE_CHECK() {
   PVE=$(pveversion | grep "pve-manager/7" | wc -l)
   if [[ $PVE != 1 ]]; then
@@ -69,6 +73,30 @@ function PVE_CHECK() {
     exit
   fi
 }
+
+if command -v pveversion >/dev/null 2>&1; then
+  if (whiptail --title "${APP} LXC" --yesno "This will create a New ${APP} LXC. Proceed?" 10 58); then
+    NEXTID=$(pvesh get /cluster/nextid)
+  else
+    clear
+    echo -e "⚠ User exited script \n"
+    exit
+  fi
+fi
+if ! command -v pveversion >/dev/null 2>&1; then
+  if [[ ! -f /etc/apt/sources.list.d/emqx_emqx.list ]]; then
+    msg_error "No ${APP} Installation Found!";
+    exit 
+  fi
+  if (whiptail --title "${APP} LXC UPDATE" --yesno "This will update ${APP} LXC.  Proceed?" 10 58); then
+    echo "User selected Update"
+    else
+    clear
+    echo -e "⚠ User exited script \n"
+    exit
+  fi
+fi
+
 function default_settings() {
   echo -e "${DGN}Using Container Type: ${BGN}Unprivileged${CL} ${RD}NO DEVICE PASSTHROUGH${CL}"
   CT_TYPE="1"
@@ -98,10 +126,11 @@ function default_settings() {
   MAC=""
   echo -e "${DGN}Using VLAN Tag: ${BGN}Default${CL}"
   VLAN=""
-    echo -e "${DGN}Enable Root SSH Access: ${BGN}No${CL}"
+  echo -e "${DGN}Enable Root SSH Access: ${BGN}No${CL}"
   SSH="no"
   echo -e "${DGN}Enable Verbose Mode: ${BGN}No${CL}"
   VERB="no"
+  VERB2="silent"
   echo -e "${BL}Creating a ${APP} LXC using the above default settings${CL}"
 }
 function advanced_settings() {
@@ -250,9 +279,11 @@ function advanced_settings() {
   if (whiptail --defaultno --title "VERBOSE MODE" --yesno "Enable Verbose Mode?" 10 58); then
       echo -e "${DGN}Enable Verbose Mode: ${BGN}Yes${CL}"
       VERB="yes"
+      VERB2=""
   else
       echo -e "${DGN}Enable Verbose Mode: ${BGN}No${CL}"
       VERB="no"
+      VERB2="silent"
   fi
   if (whiptail --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create ${APP} LXC?" --no-button Do-Over 10 58); then
     echo -e "${RD}Creating a ${APP} LXC using the above advanced settings${CL}"
@@ -263,7 +294,7 @@ function advanced_settings() {
     advanced_settings
   fi
 }
-function start_script() {
+function install_script() {
   if (whiptail --title "SETTINGS" --yesno "Use Default Settings?" --no-button Advanced 10 58); then
     header_info
     echo -e "${BL}Using Default Settings${CL}"
@@ -274,8 +305,19 @@ function start_script() {
     advanced_settings
   fi
 }
+
+function update_script() {
 clear
-start_script
+header_info
+msg_info "Updating ${APP} LXC"
+apt-get update &>/dev/null
+apt-get -y upgrade &>/dev/null
+msg_ok "Updated ${APP} LXC"
+msg_ok "Update Successfull"
+exit
+}
+clear
+if ! command -v pveversion >/dev/null 2>&1; then update_script; else install_script; fi
 if [ "$VERB" == "yes" ]; then set -x; fi
 if [ "$CT_TYPE" == "1" ]; then
   FEATURES="nesting=1,keyctl=1"
@@ -285,6 +327,7 @@ fi
 TEMP_DIR=$(mktemp -d)
 pushd $TEMP_DIR >/dev/null
 export VERBOSE=$VERB
+export STD=$VERB2
 export SSH_ROOT=${SSH}
 export CTID=$CT_ID
 export PCT_OSTYPE=$var_os