|
|
@ -1,4 +1,16 @@ |
|
|
|
#!/usr/bin/env bash |
|
|
|
#!/usr/bin/env bash |
|
|
|
|
|
|
|
function header_info { |
|
|
|
|
|
|
|
cat <<"EOF" |
|
|
|
|
|
|
|
___ __ __ _ |
|
|
|
|
|
|
|
/ | __________/ /_ v5 / / (_)___ __ ___ __ |
|
|
|
|
|
|
|
/ /| | / ___/ ___/ __ \ / / / / __ \/ / / / |/_/ |
|
|
|
|
|
|
|
/ ___ |/ / / /__/ / / / / /___/ / / / / /_/ /> < |
|
|
|
|
|
|
|
/_/ |_/_/ \___/_/ /_/ /_____/_/_/ /_/\__,_/_/|_| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EOF |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
clear |
|
|
|
|
|
|
|
header_info |
|
|
|
echo -e "Loading..." |
|
|
|
echo -e "Loading..." |
|
|
|
APP="Arch Linux" |
|
|
|
APP="Arch Linux" |
|
|
|
var_disk="1" |
|
|
|
var_disk="1" |
|
|
@ -7,7 +19,7 @@ var_ram="512" |
|
|
|
var_os="archlinux" |
|
|
|
var_os="archlinux" |
|
|
|
var_version="base" |
|
|
|
var_version="base" |
|
|
|
NSAPP=$(echo ${APP,,} | tr -d ' ') |
|
|
|
NSAPP=$(echo ${APP,,} | tr -d ' ') |
|
|
|
NEXTID=$(pvesh get /cluster/nextid) |
|
|
|
var_install="${NSAPP}-v5-install" |
|
|
|
INTEGER='^[0-9]+$' |
|
|
|
INTEGER='^[0-9]+$' |
|
|
|
YW=$(echo "\033[33m") |
|
|
|
YW=$(echo "\033[33m") |
|
|
|
BL=$(echo "\033[36m") |
|
|
|
BL=$(echo "\033[36m") |
|
|
@ -19,6 +31,7 @@ CL=$(echo "\033[m") |
|
|
|
BFR="\\r\\033[K" |
|
|
|
BFR="\\r\\033[K" |
|
|
|
HOLD="-" |
|
|
|
HOLD="-" |
|
|
|
CM="${GN}✓${CL}" |
|
|
|
CM="${GN}✓${CL}" |
|
|
|
|
|
|
|
CROSS="${RD}✗${CL}" |
|
|
|
set -o errexit |
|
|
|
set -o errexit |
|
|
|
set -o errtrace |
|
|
|
set -o errtrace |
|
|
|
set -o nounset |
|
|
|
set -o nounset |
|
|
@ -34,31 +47,22 @@ function error_exit() { |
|
|
|
echo -e "$flag $msg" 1>&2 |
|
|
|
echo -e "$flag $msg" 1>&2 |
|
|
|
exit $EXIT |
|
|
|
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() { |
|
|
|
function msg_info() { |
|
|
|
local msg="$1" |
|
|
|
local msg="$1" |
|
|
|
echo -ne " ${HOLD} ${YW}${msg}..." |
|
|
|
echo -ne " ${HOLD} ${YW}${msg}..." |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function msg_ok() { |
|
|
|
function msg_ok() { |
|
|
|
local msg="$1" |
|
|
|
local msg="$1" |
|
|
|
echo -e "${BFR} ${CM} ${GN}${msg}${CL}" |
|
|
|
echo -e "${BFR} ${CM} ${GN}${msg}${CL}" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function msg_error() { |
|
|
|
|
|
|
|
local msg="$1" |
|
|
|
|
|
|
|
echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function PVE_CHECK() { |
|
|
|
function PVE_CHECK() { |
|
|
|
PVE=$(pveversion | grep "pve-manager/7" | wc -l) |
|
|
|
PVE=$(pveversion | grep "pve-manager/7" | wc -l) |
|
|
|
if [[ $PVE != 1 ]]; then |
|
|
|
if [[ $PVE != 1 ]]; then |
|
|
@ -68,6 +72,30 @@ function PVE_CHECK() { |
|
|
|
exit |
|
|
|
exit |
|
|
|
fi |
|
|
|
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 [[ ! -d /etc/pacman.d ]]; 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() { |
|
|
|
function default_settings() { |
|
|
|
echo -e "${DGN}Using Container Type: ${BGN}Unprivileged${CL} ${RD}NO DEVICE PASSTHROUGH${CL}" |
|
|
|
echo -e "${DGN}Using Container Type: ${BGN}Unprivileged${CL} ${RD}NO DEVICE PASSTHROUGH${CL}" |
|
|
|
CT_TYPE="1" |
|
|
|
CT_TYPE="1" |
|
|
@ -101,6 +129,7 @@ function default_settings() { |
|
|
|
SSH="no" |
|
|
|
SSH="no" |
|
|
|
echo -e "${DGN}Enable Verbose Mode: ${BGN}No${CL}" |
|
|
|
echo -e "${DGN}Enable Verbose Mode: ${BGN}No${CL}" |
|
|
|
VERB="no" |
|
|
|
VERB="no" |
|
|
|
|
|
|
|
VERB2="silent" |
|
|
|
echo -e "${BL}Creating a ${APP} LXC using the above default settings${CL}" |
|
|
|
echo -e "${BL}Creating a ${APP} LXC using the above default settings${CL}" |
|
|
|
} |
|
|
|
} |
|
|
|
function advanced_settings() { |
|
|
|
function advanced_settings() { |
|
|
@ -253,9 +282,11 @@ function advanced_settings() { |
|
|
|
if (whiptail --defaultno --title "VERBOSE MODE" --yesno "Enable Verbose Mode?" 10 58); then |
|
|
|
if (whiptail --defaultno --title "VERBOSE MODE" --yesno "Enable Verbose Mode?" 10 58); then |
|
|
|
echo -e "${DGN}Enable Verbose Mode: ${BGN}Yes${CL}" |
|
|
|
echo -e "${DGN}Enable Verbose Mode: ${BGN}Yes${CL}" |
|
|
|
VERB="yes" |
|
|
|
VERB="yes" |
|
|
|
|
|
|
|
VERB2="" |
|
|
|
else |
|
|
|
else |
|
|
|
echo -e "${DGN}Enable Verbose Mode: ${BGN}No${CL}" |
|
|
|
echo -e "${DGN}Enable Verbose Mode: ${BGN}No${CL}" |
|
|
|
VERB="no" |
|
|
|
VERB="no" |
|
|
|
|
|
|
|
VERB2="silent" |
|
|
|
fi |
|
|
|
fi |
|
|
|
if (whiptail --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create ${APP} LXC?" --no-button Do-Over 10 58); then |
|
|
|
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}" |
|
|
|
echo -e "${RD}Creating a ${APP} LXC using the above advanced settings${CL}" |
|
|
@ -266,7 +297,7 @@ function advanced_settings() { |
|
|
|
advanced_settings |
|
|
|
advanced_settings |
|
|
|
fi |
|
|
|
fi |
|
|
|
} |
|
|
|
} |
|
|
|
function start_script() { |
|
|
|
function install_script() { |
|
|
|
if (whiptail --title "SETTINGS" --yesno "Use Default Settings?" --no-button Advanced 10 58); then |
|
|
|
if (whiptail --title "SETTINGS" --yesno "Use Default Settings?" --no-button Advanced 10 58); then |
|
|
|
header_info |
|
|
|
header_info |
|
|
|
echo -e "${BL}Using Default Settings${CL}" |
|
|
|
echo -e "${BL}Using Default Settings${CL}" |
|
|
@ -277,8 +308,19 @@ function start_script() { |
|
|
|
advanced_settings |
|
|
|
advanced_settings |
|
|
|
fi |
|
|
|
fi |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function update_script() { |
|
|
|
|
|
|
|
clear |
|
|
|
|
|
|
|
header_info |
|
|
|
|
|
|
|
msg_info "Updating ${APP} LXC" |
|
|
|
|
|
|
|
pacman-key --init |
|
|
|
|
|
|
|
pacman-key --populate archlinux |
|
|
|
|
|
|
|
pacman -Sy archlinux-keyring && pacman -Su |
|
|
|
|
|
|
|
msg_ok "Update Successfull" |
|
|
|
|
|
|
|
exit |
|
|
|
|
|
|
|
} |
|
|
|
clear |
|
|
|
clear |
|
|
|
start_script |
|
|
|
if ! command -v pveversion >/dev/null 2>&1; then update_script; else install_script; fi |
|
|
|
if [ "$VERB" == "yes" ]; then set -x; fi |
|
|
|
if [ "$VERB" == "yes" ]; then set -x; fi |
|
|
|
if [ "$CT_TYPE" == "1" ]; then |
|
|
|
if [ "$CT_TYPE" == "1" ]; then |
|
|
|
FEATURES="nesting=1,keyctl=1" |
|
|
|
FEATURES="nesting=1,keyctl=1" |
|
|
@ -288,6 +330,7 @@ fi |
|
|
|
TEMP_DIR=$(mktemp -d) |
|
|
|
TEMP_DIR=$(mktemp -d) |
|
|
|
pushd $TEMP_DIR >/dev/null |
|
|
|
pushd $TEMP_DIR >/dev/null |
|
|
|
export VERBOSE=$VERB |
|
|
|
export VERBOSE=$VERB |
|
|
|
|
|
|
|
export STD=$VERB2 |
|
|
|
export SSH_ROOT=${SSH} |
|
|
|
export SSH_ROOT=${SSH} |
|
|
|
export CTID=$CT_ID |
|
|
|
export CTID=$CT_ID |
|
|
|
export PCT_OSTYPE=$var_os |
|
|
|
export PCT_OSTYPE=$var_os |