41 lines
1 KiB
Bash
Executable file
41 lines
1 KiB
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 [ -n "$(grep -P "[[: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 [ -n "$(grep -P "[[: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 [ -n "$(grep $hostname /etc/hosts)" ]; then
|
|
echo "$hostname was added succesfully:";
|
|
echo "$(grep $hostname /etc/hosts)";
|
|
else
|
|
die "Failed to add $hostname";
|
|
fi
|
|
fi
|
|
}
|
|
|
|
$@
|