dotfiles/bin/hosts
2019-11-18 22:40:23 +01:00

41 lines
1,023 B
Bash
Executable file

#!/usr/bin/env bash
# Path to your hosts file
hostsFile="/etc/hosts"
# Default IP address for host
ip="127.0.0.1"
# Hostname to add/remove.
hostname="$2"
yell() { echo "$0: $*" >&2; }
die() { yell "$*"; exit 111; }
try() { "$@" || die "cannot $*"; }
remove() {
if grep -qP "[[:space:]]$hostname" /etc/hosts; then
echo "$hostname found in $hostsFile. Removing now..."
try sudo sed -ie "/[[:space:]]$hostname/d" "$hostsFile"
else
yell "$hostname was not found in $hostsFile"
fi
}
add() {
if grep -qP "[[:space:]]$hostname" /etc/hosts; then
yell "$hostname already exists: $(grep "$hostname" $hostsFile)"
else
echo "Adding $hostname to $hostsFile..."
try printf "%s\t%s\n" "$ip" "$hostname" | sudo tee -a "$hostsFile" > /dev/null
if grep -q "$hostname" /etc/hosts; then
echo "$hostname was added succesfully:"
grep "$hostname" /etc/hosts
else
die "Failed to add $hostname"
fi
fi
}
"$@"