Skip to content

Commit

Permalink
Iprove wrapper function
Browse files Browse the repository at this point in the history
  • Loading branch information
igorpecovnik committed Sep 8, 2024
1 parent 73599b6 commit c96ec28
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 17 deletions.
32 changes: 25 additions & 7 deletions lib/armbian-configng/config.ng.jobs.json
Original file line number Diff line number Diff line change
Expand Up @@ -302,12 +302,7 @@
"id": "N05",
"description": "Enable DHCP on all interfaces",
"command": [
"rm -f /etc/netplan/30-*-static-interfaces.yaml",
"netplan set --origin-hint 10-dhcp-all-interfaces renderer=networkd",
"netplan set --origin-hint 10-dhcp-all-interfaces ethernets.all-eth-interfaces.dhcp4=true",
"netplan set --origin-hint 10-dhcp-all-interfaces ethernets.all-eth-interfaces.dhcp6=true",
"netplan set --origin-hint 10-dhcp-all-interfaces ethernets.all-eth-interfaces.match.name=e*",
"show_message <<< \"$(sudo netplan get ethernets)\""
"netplan_wrapper \"dhcp_all_wired_interfaces\" \"10-dhcp-all-interfaces\" \"\" \"networkd\""
],
"status": "Active",
"author": "Igor Pecovnik",
Expand All @@ -318,14 +313,27 @@
"description": "Set fixed IP address",
"command": [
"choose_adapter \"e\"",
"[[ -n \"$IP_ADDRESS\" ]] && netplan_wrapper \"10-dhcp-all-interfaces\" \"ethernets\" \"networkd\" \"${SELECTED_ADAPTER}\" \"$IP_ADDRESS\""
"[[ -n \"$IP_ADDRESS\" ]] && netplan_wrapper \"set_ip\" \"10-dhcp-all-interfaces\" \"ethernets\" \"networkd\" \"${SELECTED_ADAPTER}\" \"$IP_ADDRESS\""
],
"status": "Active",
"doc_link": "",
"src_reference": "",
"author": "Igor Pecovnik",
"condition": "[ -f /etc/netplan/10-dhcp-all-interfaces.yaml ] || true"
},
{
"id": "N061",
"description": "Disable IPV6 in wireless configuration",
"command": [
"choose_adapter \"e\" \"false\"",
"[[ -n \"$SELECTED_ADAPTER\" ]] && netplan_wrapper \"disable_ipv6\" \"10-dhcp-all-interfaces\" \"ethernets\" \"networkd\" \"${SELECTED_ADAPTER}\" \"$IP_ADDRESS\""
],
"status": "Active",
"doc_link": "",
"src_reference": "",
"author": "Igor Pecovnik",
"condition": "[ -f /etc/netplan/10-dhcp-all-interfaces.yaml ]"
},
{
"id": "N07",
"description": "Disable wired networking",
Expand Down Expand Up @@ -380,6 +388,16 @@
}
]
},
{
"id": "N202",
"description": "Show configs",
"command": [ "command": [ "show_message <<< \"$(sudo netplan get all)\"" ],
"status": "Active",
"doc_link": "",
"src_reference": "",
"author": "https://github.com/igorpecovnik",
"condition": ""
},
{
"id": "N02",
"description": "Apply configs",
Expand Down
43 changes: 33 additions & 10 deletions lib/armbian-configng/config.ng.network.sh
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,8 @@ function choose_adapter() {
local getip=$2

LIST=()
# this functionality is exposed only on wired network
[[ $type == e ]] && LIST=("all-eth-interfaces" "")
HIDE_IP_PATTERN="^dummy0|^lo|^docker"
for f in /sys/class/net/*; do
interface=$(basename $f)
Expand All @@ -247,7 +249,7 @@ function choose_adapter() {
done
LIST_LENGTH=$((${#LIST[@]}/2));
SELECTED_ADAPTER=$(whiptail --title "Select interface" --menu "" $((${LIST_LENGTH} + 8)) 40 $((${LIST_LENGTH})) "${LIST[@]}" 3>&1 1>&2 2>&3)
if [[ -n $SELECTED_ADAPTER && "${getip}" != false ]]; then
if [[ -n $SELECTED_ADAPTER && SELECTED_ADAPTER != "all-eth-interfaces" && "${getip}" != false ]]; then
IP_ADDRESS=$(whiptail --title "Enter new IP for $SELECTED_ADAPTER" --inputbox "\nValid format: 1.2.3.4/5" 9 40 3>&1 1>&2 2>&3)
fi

Expand Down Expand Up @@ -287,15 +289,36 @@ module_options+=(
#
function netplan_wrapper() {

local config=$1
local type=$2
local renderer=$3
local adapter=$4
local address=$5
local what=$1
local config=$2
local type=$3
local renderer=$4
local adapter=$5
local address=$6

case "$1" in
dhcp_all_wired_interfaces)
rm -f /etc/netplan/30-*-static-interfaces.yaml
netplan set --origin-hint ${config} renderer=${renderer}
netplan set --origin-hint ${config} ethernets.all-eth-interfaces.dhcp4=true
netplan set --origin-hint ${config} ethernets.all-eth-interfaces.dhcp6=true
netplan set --origin-hint ${config} ethernets.all-eth-interfaces.match.name=e*
show_message <<< "$(sudo netplan get ${type})"
;;
set_ip)
netplan set --origin-hint ${config} renderer=${renderer}
netplan set --origin-hint ${config} ethernets.${adapter}.addresses=[$address]
show_message <<< "$(sudo netplan get ${type})"
;;
disable_ipv6)
netplan set --origin-hint ${config} renderer=${renderer}
netplan set --origin-hint ${config} ethernets.${adapter}.dhcp6=false
show_message <<< "$(sudo netplan get ${type})"
;;
*)
esac



#rm -f /etc/netplan/${config}.yaml
netplan set --origin-hint ${config} renderer=${renderer}
netplan set --origin-hint ${config} ethernets.${adapter}.addresses=[$address]
show_message <<< "$(sudo netplan get ${type})"

}

0 comments on commit c96ec28

Please sign in to comment.