29 lines
		
	
	
		
			505 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			505 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
case "$0" in
 | 
						|
	*ifdown) modes=down;;
 | 
						|
	*ifup) modes="down up";;
 | 
						|
	*) echo "Invalid command: $0";;
 | 
						|
esac
 | 
						|
 | 
						|
if_call() {
 | 
						|
	local interface="$1"
 | 
						|
	for mode in $modes; do
 | 
						|
		ubus call $interface $mode
 | 
						|
	done
 | 
						|
}
 | 
						|
 | 
						|
[ "$modes" = "down up" ] && ubus call network reload
 | 
						|
[[ "$1" == "-a" ]] && {
 | 
						|
	for interface in `ubus -S list 'network.interface.*'`; do
 | 
						|
		if_call "$interface"
 | 
						|
	done
 | 
						|
	exit
 | 
						|
}
 | 
						|
 | 
						|
ubus -S list "network.interface.$1" > /dev/null || {
 | 
						|
	echo "Interface $1 not found"
 | 
						|
	exit
 | 
						|
}
 | 
						|
if_call "network.interface.$1"
 |