bin/newbox

61 lines
1.1 KiB
Bash
Executable file

#!/usr/bin/env bash
set -e # bail on errors
fail() {
echo "error: $@"
exit 1
}
function command_exists() {
which "$1" >/dev/null 2>/dev/null
}
install() {
if command_exists "$1"; then
return
fi
# apt (debian / ubuntu)
if command_exists aptitude; then
sudo aptitude install -y "$1"
# homebrew (os x)
elif command_exists brew; then
brew install "$1"
# rpm (redhat / centos / fedora)
elif command_exists yum; then
sudo yum install -y "$1"
# arch
elif command_exists pacman; then
sudo pacman -S "$1"
else
fail "Don't know how to install $1 on this box. Install $1 and run this again."
fi
}
install zsh || fail "Failed to install zsh."
install git || fail "Failed to install git."
cd ~
if ! [[ -d config ]]; then
git clone git://github.com/samsonjs/config || fail "cannot clone config repo"
fi
cd config
./init.sh
cd ..
echo " * Done!"
# FIXME figure out how to change the shell semi-interactively (only type in password)
if ! grep `id -u` /etc/passwd | grep zsh; then
#chsh -s `which zsh`
echo " *** Use chsh to change your shell to `which zsh`"
fi