You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							96 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
	
	
							96 lines
						
					
					
						
							1.6 KiB
						
					
					
				#!/bin/sh | 
						|
 | 
						|
# Control the network interfaces | 
						|
# Depends: iproute2, netctl | 
						|
 | 
						|
WIRELESS="wlan0" | 
						|
ETHERNET="eth0" | 
						|
PROFILE="eth0-dhcp" | 
						|
 | 
						|
help() { | 
						|
	B=$(tput bold) | 
						|
	U=$(tput smul) | 
						|
	N=$(tput sgr0) | 
						|
 | 
						|
	cat << EOF | 
						|
${B}NAME${N} | 
						|
	netictl - control the network interfaces | 
						|
 | 
						|
${B}SYNOPSIS${N} | 
						|
	${B}netictl${N} ${U}OPTION${N} [${U}ARG${N}] | 
						|
 | 
						|
${B}OPTIONS${N} | 
						|
	${B}-h${N}	Display usage message and exit. | 
						|
 | 
						|
	${B}-e${N} ${U}STATE${N} | 
						|
		Set ethernet ${U}STATE${N}, possible values: on/off, 1/0. | 
						|
 | 
						|
	${B}-w${N} ${U}STATE${N} | 
						|
		Set wireless ${U}STATE${N}, possible values: on/off, 1/0. | 
						|
EOF | 
						|
} | 
						|
 | 
						|
# Exit if no option is provided | 
						|
[ "$#" -eq 0 ] && help && exit 1 | 
						|
 | 
						|
SCRIPT="$(basename "$0")" | 
						|
 | 
						|
# Option handling | 
						|
while getopts ':h?e:w:' opt; do | 
						|
	case $opt in | 
						|
		h) | 
						|
			help | 
						|
			exit 0 | 
						|
			;; | 
						|
		e) | 
						|
			DEV="ethernet" | 
						|
			ARG="$OPTARG" | 
						|
			;; | 
						|
		w) | 
						|
			DEV="wireless" | 
						|
			ARG="$OPTARG" | 
						|
			;; | 
						|
		:) | 
						|
			echo "$SCRIPT: option requires an argument '$OPTARG'" | 
						|
			echo "Try '$SCRIPT -h' for more information." | 
						|
			exit 1 | 
						|
			;; | 
						|
		\?) | 
						|
			echo "$SCRIPT: invalid option '$OPTARG'" | 
						|
			echo "Try '$SCRIPT -h' for more information." | 
						|
			exit 1 | 
						|
			;; | 
						|
	esac | 
						|
done | 
						|
 | 
						|
ethernet() { | 
						|
	sudo netctl stop $PROFILE | 
						|
	sudo ip link set $ETHERNET down | 
						|
 | 
						|
	if [ "$1" -eq 1 ]; then | 
						|
		sudo netctl start $PROFILE | 
						|
	fi | 
						|
} | 
						|
 | 
						|
wireless() { | 
						|
	if [ "$1" -eq 1 ]; then | 
						|
		sudo ip link set $WIRELESS up | 
						|
	else | 
						|
		sudo ip link set $WIRELESS down | 
						|
	fi | 
						|
} | 
						|
 | 
						|
# Arg handling | 
						|
case "$ARG" in | 
						|
	1 | on) | 
						|
		[ "$DEV" = "ethernet" ] && ethernet 1 || wireless 1 | 
						|
		;; | 
						|
	0 | off) | 
						|
		[ "$DEV" = "ethernet" ] && ethernet 0 || wireless 0 | 
						|
		;; | 
						|
	*) | 
						|
		echo "$SCRIPT: invalid argument '$ARG'" | 
						|
		echo "Try '$SCRIPT -h' for more information." | 
						|
		exit 1 | 
						|
		;; | 
						|
esac
 | 
						|
 |