refactor: make script more DRY
This commit is contained in:
916
build.sh
916
build.sh
@@ -48,30 +48,85 @@ if [ "$debug_mode" = true ]; then
|
||||
menu_message+=" \e[31m(Debug Mode)\e[0m"
|
||||
fi
|
||||
|
||||
menu_option_1() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/almalinux/10/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
# Menu registry
|
||||
# Format: key="Label|RelativeInputPath"
|
||||
declare -A MENU_ITEMS=(
|
||||
[1]="AlmaLinux 10|linux/almalinux/10"
|
||||
[2]="AlmaLinux 9|linux/almalinux/9"
|
||||
[3]="AlmaLinux 8|linux/almalinux/8"
|
||||
[4]="CentOS 10 Stream|linux/centos/10-stream"
|
||||
[5]="CentOS 9 Stream|linux/centos/9-stream"
|
||||
[6]="Debian 12 (Bookworm)|linux/debian/12"
|
||||
[7]="Debian 12 (Bullseye)|linux/debian/11"
|
||||
[8]="openSUSE Leap 15.6|linux/opensuse/leap-15-6"
|
||||
[9]="openSUSE Leap 15.5|linux/opensuse/leap-15-5"
|
||||
[10]="Oracle Linux 9|linux/oracle/9"
|
||||
[11]="Oracle Linux 8|linux/oracle/8"
|
||||
[12]="Rocky Linux 10|linux/rocky/10"
|
||||
[13]="Rocky Linux 9|linux/rocky/9"
|
||||
[14]="Rocky Linux 8|linux/rocky/8"
|
||||
[15]="Ubuntu Server 25.04|linux/ubuntu/25-04"
|
||||
[16]="Ubuntu Server 24.04 LTS|linux/ubuntu/24-04-lts"
|
||||
[17]="Ubuntu Server 22.04|linux/ubuntu/22-04-lts"
|
||||
[18]="Ubuntu Server 20.04|linux/ubuntu/20-04-lts"
|
||||
[19]="Windows 11 - All|windows/desktop/11|"
|
||||
[20]="Windows 11 - Enterprise|windows/desktop/11|--only proxmox-iso.windows-desktop-ent"
|
||||
[21]="Windows 11 - Professional|windows/desktop/11|--only proxmox-iso.windows-desktop-pro"
|
||||
[I]="Information|info"
|
||||
[Q]="Quit|quit_program"
|
||||
)
|
||||
|
||||
build_template() {
|
||||
local label="$1"
|
||||
local relative_path="$2"
|
||||
local extra_args="$3"
|
||||
|
||||
INPUT_PATH="$SCRIPT_PATH/builds/$relative_path"
|
||||
BUILD_PATH="${relative_path}"
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a AlmaLinux 10 Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
# List of required var files
|
||||
local var_files=(
|
||||
"$CONFIG_PATH/ansible.pkrvars.hcl"
|
||||
"$CONFIG_PATH/build.pkrvars.hcl"
|
||||
"$CONFIG_PATH/common.pkrvars.hcl"
|
||||
"$CONFIG_PATH/linux-storage.pkrvars.hcl"
|
||||
"$CONFIG_PATH/network.pkrvars.hcl"
|
||||
"$CONFIG_PATH/proxmox.pkrvars.hcl"
|
||||
"$CONFIG_PATH/$BUILD_VARS"
|
||||
)
|
||||
|
||||
# Validate all var files exist
|
||||
local missing_files=()
|
||||
for file in "${var_files[@]}"; do
|
||||
if [[ ! -f "$file" ]]; then
|
||||
missing_files+=("$file")
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ ${#missing_files[@]} -ne 0 ]]; then
|
||||
echo "Error: The following required .pkrvars.hcl files are missing:"
|
||||
for f in "${missing_files[@]}"; do
|
||||
echo " - $f"
|
||||
done
|
||||
echo "Aborting build."
|
||||
return 1
|
||||
fi
|
||||
|
||||
### Build a AlmaLinux 10 Template for Proxmox. ###
|
||||
echo "Building a AlmaLinux 10 Template for Proxmox..."
|
||||
# Confirmation prompt
|
||||
echo -e "\nCONFIRM: Build a $label Template for Proxmox?"
|
||||
read -rp "Continue? (y/n) " REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "Aborted."
|
||||
return
|
||||
fi
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Building a $label Template for Proxmox..."
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
echo "Starting the build..."
|
||||
packer build -force -on-error=ask $debug_option $extra_args \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
@@ -81,748 +136,24 @@ menu_option_1() {
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_2() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/almalinux/9/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a AlmaLinux 9 Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
dispatch_selection() {
|
||||
entry="${MENU_ITEMS[$selection]}"
|
||||
if [[ -z "$entry" ]]; then
|
||||
echo "Invalid selection."
|
||||
return
|
||||
fi
|
||||
|
||||
### Build a AlmaLinux 9 Template for Proxmox. ###
|
||||
echo "Building a AlmaLinux 9 Template for Proxmox..."
|
||||
IFS='|' read -r label path_or_function extra_args <<< "$entry"
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_3() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/almalinux/8/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a AlmaLinux 8 Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
# Decide if it’s a build or a function
|
||||
if [[ -d "$SCRIPT_PATH/builds/$path_or_function" ]]; then
|
||||
build_template "$label" "$path_or_function" "$extra_args"
|
||||
else
|
||||
$path_or_function
|
||||
fi
|
||||
|
||||
### Build a AlmaLinux 8 Template for Proxmox. ###
|
||||
echo "Building a AlmaLinux 8 Template for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_4() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/centos/10-stream/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a CentOS 10 Stream Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a CentOS 10 Stream Template for Proxmox. ###
|
||||
echo "Building a CentOS 10 Stream Template for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_5() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/centos/9-stream/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a CentOS 9 Stream Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a CentOS 9 Stream Template for Proxmox. ###
|
||||
echo "Building a CentOS 9 Stream Template for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_6() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/debian/12/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a Debian 12 (Bookworm) Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a Debian 12 (Bookworm) for Proxmox. ###
|
||||
echo "Building a Debian 12 (Bookworm) for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_7() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/debian/11/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a Debian 11 (Bullseye) Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a Debian 11 (Bullseye) for Proxmox. ###
|
||||
echo "Building a Debian 11 (Bullseye) for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_8() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/opensuse/leap-15-6/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a OpenSUSE Leap 15.6 Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a OpenSUSE Leap 15.6 Template for Proxmox. ###
|
||||
echo "Building a OpenSUSE Leap 15.6 Template for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_9() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/opensuse/leap-15-5/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a OpenSUSE Leap 15.5 Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a OpenSUSE Leap 15.5 Template for Proxmox. ###
|
||||
echo "Building a OpenSUSE Leap 15.5 Template for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_10() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/oracle/9/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a Oracle Linux 9 Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a Oracle Linux 9 Template for Proxmox. ###
|
||||
echo "Building a Oracle Linux 9 Template for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_11() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/oracle/8/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a Oracle Linux 8 Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a Oracle Linux 8 Template for Proxmox. ###
|
||||
echo "Building a Oracle Linux 8 Template for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_12() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/rocky/10/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a Rocky Linux 10 Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a Rocky Linux 10 for Proxmox. ###
|
||||
echo "Building a Rocky Linux 10 for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_13() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/rocky/9/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a Rocky Linux 9 Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a Rocky Linux 9 for Proxmox. ###
|
||||
echo "Building a Rocky Linux 9 for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_14() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/rocky/8/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a Rocky Linux 8 Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a Rocky Linux 8 for Proxmox. ###
|
||||
echo "Building a Rocky Linux 8 for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_15() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/ubuntu/25-04/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a Ubuntu Server 25.04 Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a Ubuntu Server 25.04 Template for Proxmox. ###
|
||||
echo "Building a Ubuntu Server 25.04 Template for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_16() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/ubuntu/24-04-lts/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a Ubuntu Server 24.04 LTS Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a Ubuntu Server 24.04 LTS Template for Proxmox. ###
|
||||
echo "Building a Ubuntu Server 24.04 LTS Template for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
|
||||
menu_option_17() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/ubuntu/22-04-lts/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a Ubuntu Server 22.04 LTS Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a Ubuntu Server 22.04 LTS Template for Proxmox. ###
|
||||
echo "Building a Ubuntu Server 22.04 LTS Template for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_18() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/linux/ubuntu/20-04-lts/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a Ubuntu Server 20.04 LTS Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a Ubuntu Server 20.04 LTS Template for Proxmox. ###
|
||||
echo "Building a Ubuntu Server 20.04 LTS Template for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/linux-storage.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_19() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/windows/desktop/11/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build all Windows 11 Templates for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build all Windows 11 Templates for Proxmox. ###
|
||||
echo "Building all Windows 11 Templates for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_20() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/windows/desktop/11/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a Windows 11 - Enterprise Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a Windows 11 - Enterprise Template for Proxmox. ###
|
||||
echo "Building a Windows 11 - Enterprise Template for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
--only proxmox-iso.windows-desktop-ent \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
menu_option_21() {
|
||||
INPUT_PATH="$SCRIPT_PATH"/builds/windows/desktop/11/
|
||||
BUILD_PATH=${INPUT_PATH#"${SCRIPT_PATH}/builds/"}
|
||||
BUILD_VARS="$(echo "${BUILD_PATH%/}" | tr -s '/' | tr '/' '-').pkrvars.hcl"
|
||||
|
||||
echo -e "\nCONFIRM: Build a Windows 11 - Professional Template for Proxmox?"
|
||||
echo -e "\nContinue? (y/n)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Build a Windows 11 - Professional Templates for Proxmox. ###
|
||||
echo "Building a Windows 11 - Professional Template for Proxmox..."
|
||||
|
||||
### Initialize HashiCorp Packer and required plugins. ###
|
||||
echo "Initializing HashiCorp Packer and required plugins..."
|
||||
packer init "$INPUT_PATH"
|
||||
|
||||
### Start the Build. ###
|
||||
echo "Starting the build...."
|
||||
echo "packer build -force -on-error=ask $debug_option"
|
||||
packer build -force -on-error=ask $debug_option \
|
||||
--only proxmox-iso.windows-desktop-pro \
|
||||
-var-file="$CONFIG_PATH/ansible.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/build.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/common.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/network.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/proxmox.pkrvars.hcl" \
|
||||
-var-file="$CONFIG_PATH/$BUILD_VARS" \
|
||||
"$INPUT_PATH"
|
||||
|
||||
### All done. ###
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
press_enter() {
|
||||
@@ -839,11 +170,17 @@ info() {
|
||||
read -r
|
||||
}
|
||||
|
||||
incorrect_selection() {
|
||||
echo "Invalid selection, please try again."
|
||||
quit_program() {
|
||||
echo "Exiting..."
|
||||
exit 0
|
||||
}
|
||||
|
||||
until [ "$selection" = "0" ]; do
|
||||
read_selection() {
|
||||
read -rp "Selection: " input
|
||||
echo "${input^^}" # always uppercase
|
||||
}
|
||||
|
||||
display_menu() {
|
||||
clear
|
||||
echo ""
|
||||
echo " ____ __ ____ "
|
||||
@@ -857,61 +194,18 @@ until [ "$selection" = "0" ]; do
|
||||
echo -n " Select a HashiCorp Packer build for your hypervisor:"
|
||||
echo ""
|
||||
echo ""
|
||||
echo " Linux Distribution:"
|
||||
echo ""
|
||||
echo " 1 - AlmaLinux 10"
|
||||
echo " 2 - AlmaLinux 9"
|
||||
echo " 3 - AlmaLinux 8"
|
||||
echo " 4 - CentOS 10 Stream"
|
||||
echo " 5 - CentOS 9 Stream"
|
||||
echo " 6 - Debian 12"
|
||||
echo " 7 - Debian 11"
|
||||
echo " 8 - OpenSUSE Leap 15.6"
|
||||
echo " 9 - OpenSUSE Leap 15.5"
|
||||
echo " 10 - Oracle Linux 9"
|
||||
echo " 11 - Oracle Linux 8"
|
||||
echo " 12 - Rocky Linux 10"
|
||||
echo " 13 - Rocky Linux 9"
|
||||
echo " 14 - Rocky Linux 8"
|
||||
echo " 15 - Ubuntu Server 25.04"
|
||||
echo " 16 - Ubuntu Server 24.04 LTS"
|
||||
echo " 17 - Ubuntu Server 22.04 LTS"
|
||||
echo " 18 - Ubuntu Server 20.04 LTS"
|
||||
echo " 19 - Windows 11 - All"
|
||||
echo " 20 - Windows 11 - Enterprise Only"
|
||||
echo " 21 - Windows 11 - Professional Only"
|
||||
echo ""
|
||||
echo " Other:"
|
||||
echo ""
|
||||
echo " I - Information"
|
||||
echo " Q - Quit"
|
||||
echo ""
|
||||
read -r selection
|
||||
echo ""
|
||||
case $selection in
|
||||
1 ) clear ; menu_option_1 ; press_enter ;;
|
||||
2 ) clear ; menu_option_2 ; press_enter ;;
|
||||
3 ) clear ; menu_option_3 ; press_enter ;;
|
||||
4 ) clear ; menu_option_4 ; press_enter ;;
|
||||
5 ) clear ; menu_option_5 ; press_enter ;;
|
||||
6 ) clear ; menu_option_6 ; press_enter ;;
|
||||
7 ) clear ; menu_option_7 ; press_enter ;;
|
||||
8 ) clear ; menu_option_8 ; press_enter ;;
|
||||
9 ) clear ; menu_option_9 ; press_enter ;;
|
||||
10) clear ; menu_option_10 ; press_enter ;;
|
||||
11) clear ; menu_option_11 ; press_enter ;;
|
||||
12) clear ; menu_option_12 ; press_enter ;;
|
||||
13) clear ; menu_option_13 ; press_enter ;;
|
||||
14) clear ; menu_option_14 ; press_enter ;;
|
||||
15) clear ; menu_option_15 ; press_enter ;;
|
||||
16) clear ; menu_option_16 ; press_enter ;;
|
||||
17) clear ; menu_option_17 ; press_enter ;;
|
||||
18) clear ; menu_option_18 ; press_enter ;;
|
||||
19) clear ; menu_option_19 ; press_enter ;;
|
||||
20) clear ; menu_option_20 ; press_enter ;;
|
||||
21) clear ; menu_option_21 ; press_enter ;;
|
||||
[Ii] ) clear ; info ; press_enter ;;
|
||||
[Qq] ) clear ; exit ;;
|
||||
* ) clear ; incorrect_selection ; press_enter ;;
|
||||
esac
|
||||
|
||||
for key in $(printf "%s\n" "${!MENU_ITEMS[@]}" | sort -n 2>/dev/null); do
|
||||
IFS='|' read -r label _ <<< "${MENU_ITEMS[$key]}"
|
||||
printf " %2s - %s\n" "$key" "$label"
|
||||
done
|
||||
echo ""
|
||||
selection=$(read_selection)
|
||||
}
|
||||
|
||||
while true; do
|
||||
display_menu
|
||||
dispatch_selection
|
||||
echo ""
|
||||
read -rp "Press enter to continue..."
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user