function temp_internet --description "Temporarily add or remove Internet access from a VM" set -l action $argv[1] set -l vmid $argv[2] if test -z "$action" echo "Usage: temp_internet {add|rm} [ip/cidr] [gateway] [bridge] [model]" return 1 end if test -z "$vmid" echo "Error: VMID is required." return 1 end switch $action case add set -l ip $argv[3] set -l gateway $argv[4] set -l bridge $argv[5] set -l model $argv[6] test -n "$ip"; or set ip $PROXMOX_TEMP_INTERNET_IP test -n "$gateway"; or set gateway $PROXMOX_TEMP_INTERNET_GATEWAY test -n "$bridge"; or set bridge $PROXMOX_TEMP_INTERNET_BRIDGE test -n "$model"; or set model $PROXMOX_TEMP_INTERNET_MODEL if test -z "$ip" echo "Error: No IP specified and PROXMOX_TEMP_INTERNET_IP is not configured." return 1 end if test -z "$gateway" echo "Error: No gateway specified and PROXMOX_TEMP_INTERNET_GATEWAY is not configured." return 1 end if test -z "$bridge" echo "Error: PROXMOX_TEMP_INTERNET_BRIDGE is not configured." return 1 end if test -z "$model" echo "Error: PROXMOX_TEMP_INTERNET_MODEL is not configured." return 1 end set -l vmname (qm config $vmid | awk -F': ' '/^name:/ { print $2 }') echo "Adding temporary Internet access to VM $vmid ($vmname)" echo " IP: $ip" echo " Gateway: $gateway" echo " Bridge: $bridge" echo " Model: $model" read -l -P "Continue? [y/N]: " confirm if test "$confirm" != y echo "Aborted." return 1 end qm set $vmid \ --net1 "$model,bridge=$bridge" \ --ipconfig1 "ip=$ip,gw=$gateway" or return restartvm $vmid case rm set -l vmname (qm config $vmid | awk -F': ' '/^name:/ { print $2 }') echo "Removing temporary Internet access from VM $vmid ($vmname)" read -l -P "Continue? [y/N]: " confirm if test "$confirm" != y echo "Aborted." return 1 end qm set $vmid --delete net1 or return qm set $vmid --delete ipconfig1 or return restartvm $vmid case '*' echo "Usage: temp_internet {add|rm} [ip/cidr] [gateway] [bridge] [model]" return 1 end end