shell attach bug present
All checks were successful
Update Dispatches / refresh-news (push) Successful in 2s

This commit is contained in:
2026-02-08 03:48:14 -05:00
parent 7bb3628840
commit 77ea378d7e

View File

@@ -1,6 +1,6 @@
#!/bin/bash
# -----------------------------------------------------------------------
# Dynasty Module: Proxmox Commander (v1.0.0)
# Dynasty Module: Proxmox Commander (v1.1.6 - Force-Attach Shell)
# -----------------------------------------------------------------------
BLUE='\033[38;5;45m'; PURPLE='\033[38;5;127m'; GOLD='\033[38;5;178m'; RED='\033[38;5;196m'; NC='\033[0m'
HOST_FILE="$HOME/.dynr/.pve_hosts"; mkdir -p "$HOME/.dynr"
@@ -42,14 +42,13 @@ if ! command -v pct &> /dev/null; then
IP=$(echo "$LINE" | cut -d'|' -f1); USR=$(echo "$LINE" | cut -d'|' -f2); AM=$(echo "$LINE" | cut -d'|' -f3); PE=$(echo "$LINE" | cut -d'|' -f4)
if [[ "$AM" == "PASS" ]]; then
P_DEC=$(echo "$PE" | base64 --decode)
# We define the base connection here
REMOTE_CMD="sshpass -p '$P_DEC' ssh -o StrictHostKeyChecking=no -t $USR@$IP"
REMOTE_BASE="sshpass -p '$P_DEC' ssh -o StrictHostKeyChecking=no -t $USR@$IP"
else
REMOTE_CMD="ssh -o StrictHostKeyChecking=no -t $USR@$IP"; fi
REMOTE_BASE="ssh -o StrictHostKeyChecking=no -t $USR@$IP"; fi
else
exec "$0"; fi
else
REMOTE_CMD=""; IP="LocalHost"; fi
REMOTE_BASE=""; IP="LocalHost"; fi
# --- 2. FLEET OPS MENU ---
while true; do
@@ -58,27 +57,32 @@ while true; do
read -p "Select: " OPT < /dev/tty
case $OPT in
1) read -p "Count: " CT; [[ "$CT" == "q" ]] && continue
read -p "Start ID: " SID; read -p "Disk GB: " DSZ; $REMOTE_CMD "pvesm status"
read -p "Start ID: " SID; read -p "Disk GB: " DSZ; $REMOTE_BASE "pvesm status"
read -p "Template Store: " TS; read -p "Disk Store: " DS
for (( i=0; i<CT; i++ )); do
CID=$((SID + i)); read -p "Name for $CID: " NM
$REMOTE_CMD "pct create $CID $TS:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst --hostname $NM --storage $DS --rootfs $DS:$DSZ --net0 name=eth0,bridge=vmbr0,ip=dhcp"
$REMOTE_CMD "pct start $CID"; done; read -p "Done..." ;;
2) $REMOTE_CMD "pct list"; read -p "Enter..." ;;
3) # --- UPDATED CONSOLE (SHELL) ---
$REMOTE_BASE "pct create $CID $TS:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst --hostname $NM --storage $DS --rootfs $DS:$DSZ --net0 name=eth0,bridge=vmbr0,ip=dhcp"
$REMOTE_BASE "pct start $CID"; done; read -p "Done..." ;;
2) $REMOTE_BASE "pct list"; read -p "Enter..." ;;
3) # --- HARD-LINK CONSOLE (SHELL) ---
echo -e "1) Host Shell 2) LXC Console 3) Back"
read -p ": " CG
if [[ "$CG" == "1" ]]; then
# Running the command directly without quotes allows the shell to attach
$REMOTE_CMD
elif [[ "$CG" == "2" ]]; then
read -p "LXC ID: " LID
# Passing the internal command to the remote host
$REMOTE_CMD "pct enter $LID"
fi ;;
4) echo -e "1) Host 2) All LXCs"; read -p ": " UO
[[ "$UO" == "1" ]] && $REMOTE_CMD "apt update && apt upgrade -y"
[[ "$UO" == "2" ]] && $REMOTE_CMD "for id in \$(pct list | awk 'NR>1 {print \$1}'); do pct exec \$id -- apt update && apt upgrade -y; done"
read -p ": " CG < /dev/tty
case $CG in
1)
echo -e "${GOLD}Connecting to Host Shell... (Type 'exit' to return)${NC}"
eval "$REMOTE_BASE"
;;
2)
read -p "LXC ID: " LID < /dev/tty
echo -e "${BLUE}Entering LXC $LID... (Type 'exit' to return)${NC}"
eval "$REMOTE_BASE \"pct enter $LID\""
;;
*) continue ;;
esac
read -p "Returned from Shell. Press Enter..." < /dev/tty ;;
4) echo -e "1) Host 2) All LXCs"; read -p ": " UO < /dev/tty
[[ "$UO" == "1" ]] && $REMOTE_BASE "apt update && apt upgrade -y"
[[ "$UO" == "2" ]] && $REMOTE_BASE "for id in \$(pct list | awk 'NR>1 {print \$1}'); do pct exec \$id -- apt update && apt upgrade -y; done"
read -p "Done..." ;;
5) exec "$0" ;;
6) exit 0 ;;