#!/usr/bin/env bash NORMAL=$(tput sgr0) GREEN=$(tput setaf 2; tput bold) YELLOW=$(tput setaf 3) RED=$(tput setaf 1) function red() { echo -e "$RED$*$NORMAL"; } function green() { echo -e "$GREEN$*$NORMAL"; } function yellow() { echo -e "$YELLOW$*$NORMAL"; } if [ $# -lt 1 ]; then echo "Usage: $0 <host|IP> [friendly-name] [user]" echo "Example: $0 127.0.0.1 server-name $USER" echo echo "Afterwards you can login with: ssh server-name" exit 1; fi HOST=$1 NAME=$2 USERNAME=$3 IP=`dig +short $HOST` if [ -z "$USERNAME" ]; then USERNAME=$USER fi if [ -z "$IP" ]; then IP=$HOST fi if [ -z "$NAME" ]; then NAME=$HOST fi yellow "Setting up server $USERNAME@$HOST with name '$NAME'" grep "Host $NAME" ~/.ssh/config 2>&1 > /dev/null if [ 0 -eq $? ]; then echo $NAME is already in .ssh/config else echo Adding server to .ssh/config... cat >> ~/.ssh/config <<END_OF_HOST Host $NAME HostName $IP User $USERNAME END_OF_HOST fi echo Copying .ssh directory... scp -qr $HOME/.ssh/ $NAME: echo Installing dotfiles... ssh $NAME 'find . -maxdepth 1 -type l -exec unlink {} \;; rm $HOME/.bash*; curl -s https://dot.jacobkiers.net | bash' echo green "Done installing server. You can now log in with: ssh $NAME" green "As a convenience, you will be logged in immediately." ssh $NAME