This is a collection of dotfiles and scripts for my bspwm setup
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

#!/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}
netctl.sh - control the network interfaces
${B}SYNOPSIS${N}
${B}netctl.sh${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