#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x

if [[ ! -f /etc/sudoers.d/dokku-nginx ]]; then
  case "$DOKKU_DISTRO" in
    ubuntu)
      echo "%dokku ALL=(ALL) NOPASSWD:/etc/init.d/nginx reload" >> /etc/sudoers.d/dokku-nginx
      ;;

    opensuse)
      echo "%dokku ALL=(ALL) NOPASSWD:/sbin/service nginx reload" >> /etc/sudoers.d/dokku-nginx
      ;;
  esac

  chmod 0440 /etc/sudoers.d/dokku-nginx
fi

# if dokku.conf has not been created, create it
if [[ ! -f /etc/nginx/conf.d/dokku.conf ]]; then
  cat<<EOF > /etc/nginx/conf.d/dokku.conf
include $DOKKU_ROOT/*/nginx.conf;

ssl_session_cache shared:SSL:20m;
ssl_session_timeout 10m;

ssl_ciphers EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_prefer_server_ciphers on;

#ssl_certificate $DOKKU_ROOT/tls/server.crt;
#ssl_certificate_key $DOKKU_ROOT/tls/server.key;
EOF
fi

echo 'server_names_hash_bucket_size 64;' >| /etc/nginx/conf.d/server_names_hash_bucket_size.conf

if [[ ! -f  "$DOKKU_ROOT/VHOST" ]]; then
  [[ $(dig +short $(< "$DOKKU_ROOT/HOSTNAME")) ]] && cp "$DOKKU_ROOT/HOSTNAME" "$DOKKU_ROOT/VHOST"
fi

case "$DOKKU_DISTRO" in
  ubuntu)
    /etc/init.d/nginx start
    ;;

  opensuse)
    /sbin/service nginx start
    ;;
esac
