candifloss 7fe91894d2 Update function temp_internet
- Use a variable for usage help string
2026-07-24 11:46:56 +05:30

95 lines
2.6 KiB
Fish

function temp_internet --description "Temporarily add or remove Internet access from a VM"
set -l action $argv[1]
set -l vmid $argv[2]
set -i usage_help "Usage: temp_internet {add|rm} <vmid> [ip/cidr] [gateway] [bridge] [model]"
if test -z "$action"
echo "$usage_help"
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 $VM_TEMP_NET_IP
test -n "$gateway"; or set gateway $VM_TEMP_NET_GATEWAY
test -n "$bridge"; or set bridge $VM_TEMP_NET_BRIDGE
test -n "$model"; or set model $VM_TEMP_NET_MODEL
if test -z "$ip"
echo "Error: VM_TEMP_NET_IP is not configured."
return 1
end
if test -z "$gateway"
echo "Error: VM_TEMP_NET_GATEWAY is not configured."
return 1
end
if test -z "$bridge"
echo "Error: VM_TEMP_NET_BRIDGE is not configured."
return 1
end
if test -z "$model"
echo "Error: VM_TEMP_NET_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_help"
return 1
end
end