#!/bin/bash

# This can be run via dropbox and curl: bash <(curl -s https://dl.dropboxusercontent.com/u/39235514/jenkinsInstall.sh)

echo debconf shared/accepted-oracle-license-v1-1 select true | \
  sudo debconf-set-selections
echo debconf shared/accepted-oracle-license-v1-1 seen true | \
  sudo debconf-set-selections

#java 8
sudo add-apt-repository -y ppa:webupd8team/java
#jenkins
wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'

sudo apt-get update

sudo apt-get install -y oracle-java8-installer
sudo apt-get install oracle-java8-set-default
sudo apt-get install -y git
sudo apt-get install -y jenkins

#nginx
sudo aptitude -y install nginx
sudo rm /etc/nginx/sites-available/default
sudo rm /etc/nginx/sites-enabled/default
echo "upstream app_server {
    server 127.0.0.1:8080 fail_timeout=0;
}

server {
    listen 80;
    listen [::]:80 default ipv6only=on;
    server_name jenkins.yourdomain.com;

    location / {
        proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
        proxy_set_header Host \$http_host;
        proxy_redirect off;

        if (!-f \$request_filename) {
            proxy_pass http://app_server;
            break;
        }
    }
}" > ~/jenkins_config_tmp
sudo rm /etc/nginx/sites-available/jenkins
sudo mv ~/jenkins_config_tmp /etc/nginx/sites-available/jenkins
sudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/
sudo service nginx restart

# Install Jenkins Plugins ######################################################

sudo mkdir -p /var/lib/jenkins/plugins

#Default Plugins (update these)
sudo wget http://mirrors.jenkins-ci.org/plugins/credentials/latest/credentials.hpi -O /var/lib/jenkins/plugins/credentials.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/cvs/latest/cvs.hpi -O /var/lib/jenkins/plugins/cvs.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/javadoc/latest/javadoc.hpi -O /var/lib/jenkins/plugins/javadoc.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/junit/latest/junit.hpi -O /var/lib/jenkins/plugins/junit.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/mailer/latest/mailer.hpi -O /var/lib/jenkins/plugins/mailer.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/matrix-auth/latest/matrix-auth.hpi -O /var/lib/jenkins/plugins/matrix-auth.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/matrix-project/latest/matrix-project.hpi -O /var/lib/jenkins/plugins/matrix-project.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/maven-plugin/latest/maven-plugin.hpi -O /var/lib/jenkins/plugins/maven-plugin.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/pam-auth/latest/pam-auth.hpi -O /var/lib/jenkins/plugins/pam-auth.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/script-security/latest/script-security.hpi -O /var/lib/jenkins/plugins/script-security.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/mailer/latest/mailer.hpi -O /var/lib/jenkins/plugins/mailer.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/antisamy-markup-formatter/latest/antisamy-markup-formatter.hpi -O /var/lib/jenkins/plugins/antisamy-markup-formatter.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/ssh-credentials/latest/ssh-credentials.hpi -O /var/lib/jenkins/plugins/ssh-credentials.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/ssh-slaves/latest/ssh-slaves.hpi -O /var/lib/jenkins/plugins/ssh-slaves.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/subversion/latest/subversion.hpi -O /var/lib/jenkins/plugins/subversion.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/translation/latest/translation.hpi -O /var/lib/jenkins/plugins/translation.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/windows-slaves/latest/windows-slaves.hpi -O /var/lib/jenkins/plugins/windows-slaves.hpi

#Add plugins
sudo wget http://mirrors.jenkins-ci.org/plugins/scm-api/latest/scm-api.hpi -O /var/lib/jenkins/plugins/scm-api.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/git/latest/git.hpi -O /var/lib/jenkins/plugins/git.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/git-client/latest/git-client.hpi -O /var/lib/jenkins/plugins/git-client.hpi
sudo wget http://mirrors.jenkins-ci.org/plugins/grails/latest/grails.hpi -O /var/lib/jenkins/plugins/grails.hpi

# sudo chown -R jenkins:jenkins /var/lib/jenkins/plugins/

sudo service jenkins restart