Skip to content

Instantly share code, notes, and snippets.

@jdunk
Created June 11, 2014 18:36
Show Gist options
  • Save jdunk/388547e2db44df5a8350 to your computer and use it in GitHub Desktop.
Save jdunk/388547e2db44df5a8350 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
echo '>>>> Fixing root .profile'
sed -i 's/^mesg n$/tty -s \&\& mesg n/g' /root/.profile
echo '>>>> Setting up "admin" group'
! grep -i '^admin:' /etc/group &>/dev/null && groupadd admin &>/dev/null
echo '>>>> Updating packages list'
#apt-get update
! which git &>/dev/null && apt-get -y install git
SETUP_USERS="root "`logname`
for u in $SETUP_USERS; do
echo ">>>> Setting up $u home dir"
HOMEDIR=$([ $u = "root" ] && echo "/root" || echo "/home/$u")
BASHRC=$HOMEDIR"/.bashrc"
! grep 'SUPER_BASHRC' $BASHRC &>/dev/null && cat <<- 'EOF' > $BASHRC
SUPER_BASHRC="$HOME/dotfiles/.bashrc"
[ -f $SUPER_BASHRC ] && . $SUPER_BASHRC
EOF
if [ ! -d $HOMEDIR/dotfiles ]; then
git clone https://github.com/jdunk/dotfiles $HOMEDIR/dotfiles
ln -snf dotfiles/.gitconfig $HOMEDIR
ln -snf dotfiles/.screenrc $HOMEDIR
ln -snf dotfiles/.vimrc $HOMEDIR
ln -snf dotfiles/.vim $HOMEDIR
fi
done
chown -R `logname` .
chgrp -R admin /usr/local
chmod -R g+w /usr/local
find /usr/local -type d -exec chmod g+s '{}' \;
echo '>>>> Checking for ack...'
which ack &>/dev/null
if [ $? -ne 0 ]; then
echo '>>>> Installing ack...'
curl -Ss http://beyondgrep.com/ack-2.12-single-file > /usr/local/bin/ack && chmod 0755 /usr/local/bin/ack
else
echo '>>>> ack already installed.'
fi
# to be able to add a ppa
apt-get -y install python-software-properties
# add ppa for latest php5
echo -n '>>>> Checking for ppa:ondrej/php5...'
ls /etc/apt/sources.list.d/ondrej-php5-* &>/dev/null
if [ $? -ne 0 ]; then
echo ' not present. Adding it now...'
add-apt-repository ppa:ondrej/php5
else
echo ' already added.'
fi
apt-get -y update && apt-get -y dist-upgrade
# install things missing from default ubuntu
apt-get -y install unzip git ntp colordiff
# NOTE: this needs to be configured to work, but depends on domain names. Just install for now.
#apt-get -y install qmail-run
apt-get -y install php5-fpm php5-cli php5-mysql php5-curl php5-mcrypt php5 # avoids apache dependency
echo -n '>>>> Checking for ppa:nginx/stable...'
ls /etc/apt/sources.list.d/nginx-stable-* &>/dev/null
if [ $? -ne 0 ]; then
echo ' not present. Adding it now...'
add-apt-repository ppa:nginx/stable
apt-get -y update
apt-get -y install nginx
else
echo ' already added.'
fi
# setting this var will suppress the prompt to set the root pw
export DEBIAN_FRONTEND=noninteractive
apt-get -y install mysql-server-5.5
# alternatively, mysql root pw can be set like so:
# mysqladmin -u root password desired_password_goes_here
echo '>>>> Checking for composer...'
which composer &>/dev/null
if [ $? -ne 0 ]; then
echo '>>>> Installing composer...'
cd /usr/local/bin
curl -sS https://getcomposer.org/installer | php
mv composer.phar composer
chmod +x composer
cd - &>/dev/null
else
echo '>>>> composer already installed.'
fi
echo '>>>> Checking for laravel...'
which laravel &>/dev/null
if [ $? -ne 0 ]; then
echo '>>>> Installing laravel...'
cd /usr/local/bin
wget -q http://laravel.com/laravel.phar -O laravel
chmod +x laravel
cd - &>/dev/null
else
echo '>>>> laravel already installed.'
fi
#(echo; date; whoami)>>whoami
date >> provisioned
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment