#!/bin/bash

# Note: This assumes that nginx is installed by the server setup script.
# The package created by this script will then override the default
# nginx configuration, set up the websites defined in ./sys/skia_nginx and
# restart the nginx service.

# Builds and uploads a debian package with configuration files for nginx.
APPNAME=skfe-config
SETUP_APPNAME="setup-${APPNAME}"
LOGROTATE_APPNAME="rotate_nginx_logs"
CERTPOLLER_APPNAME="certpoller"
SYSTEMD=""
SYSTEMD_TIMER="${SETUP_APPNAME}.service ${LOGROTATE_APPNAME}.timer"
DESCRIPTION="The local config files for nginx serving *.skia.org"

set -x -e

# Copy files into the right locations in ${ROOT}.
copy_release_files()
{
INSTALL="fakeroot install -D --verbose --backup=none --group=root --owner=root"
INSTALL_DIR="fakeroot install -d --verbose --backup=none --group=root --owner=root"
SOFTLINK="fakeroot ln -s"
${INSTALL} --mode=644 -T ./sys/skia-nginx.conf                  ${ROOT}/etc/nginx/skia-nginx.conf
# Configs for the sites we are hosting.
${INSTALL} --mode=644 -T ./sys/skia_org_nginx                   ${ROOT}/etc/nginx/sites-available/skia_org
fakeroot mkdir                                                  ${ROOT}/etc/nginx/sites-enabled
${SOFTLINK} ../sites-available/skia_org                         ${ROOT}/etc/nginx/sites-enabled/skia_org
${INSTALL_DIR} --mode=755                                       ${ROOT}/etc/nginx/ssl
${INSTALL} --mode=644 -T ./sys/${SETUP_APPNAME}.service         ${ROOT}/etc/systemd/system/${SETUP_APPNAME}.service
${INSTALL} --mode=644 -T ./sys/${LOGROTATE_APPNAME}.service     ${ROOT}/etc/systemd/system/${LOGROTATE_APPNAME}.service
${INSTALL} --mode=644 -T ./sys/${LOGROTATE_APPNAME}.timer       ${ROOT}/etc/systemd/system/${LOGROTATE_APPNAME}.timer
${INSTALL} --mode=644 -T ./sys/skia-fluentd.conf                ${ROOT}/etc/google-fluentd/config.d/skia-fluentd.conf
${INSTALL} --mode=755 -T ${GOPATH}/bin/${CERTPOLLER_APPNAME}    ${ROOT}/usr/local/bin/${CERTPOLLER_APPNAME}
${INSTALL} --mode=755 -T ./sys/${SETUP_APPNAME}.sh              ${ROOT}/usr/local/bin/${SETUP_APPNAME}.sh
${INSTALL} --mode=755 -T ./sys/${LOGROTATE_APPNAME}.sh          ${ROOT}/usr/local/bin/${LOGROTATE_APPNAME}.sh

# Override the default nginx.service file /lib/systemd/system/nginx.service
${INSTALL} --mode=644 -T ./sys/nginx.service                    ${ROOT}/etc/systemd/system/nginx.service
}

source ../bash/release.sh
