#!/usr/bin/env bash
set -e

echo "Installing Nomad..."
chmod +x /tmp/nomad
sudo mv /tmp/nomad /usr/local/bin/nomad
sudo mkdir -p /opt/nomad/data

# Write the flags to a temporary file
cat > /tmp/nomad_config << EOF
bind_addr = "0.0.0.0"

advertise {
  # This works but makes assummptions about network interfaces
  rpc = "$(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'):4647"
}

addresses {
  http = "127.0.0.1"
}

# Increase log verbosity
log_level = "DEBUG"

# Setup data dir
data_dir = "/opt/nomad/data"

# Enable the server
client {
    enabled = true

    # For demo assume we are talking to server1. For production,
    # this should be like "nomad.service.consul:4647" and a system
    # like Consul used for service discovery.
    servers = ["nomad-master.service.consul:4647"]
}
EOF

echo "Installing Nomad Upstart service..."
sudo mkdir -p /etc/nomad.d
sudo mkdir -p /etc/service/nomad/

sudo chown root:root /tmp/nomad-upstart.conf
sudo mv /tmp/nomad-upstart.conf /etc/init/nomad.conf
sudo chmod 0644 /etc/init/nomad.conf

sudo mv /tmp/nomad_config /etc/service/nomad/default.conf
sudo cp /tmp/master-server-addr /etc/service/nomad/servers.conf
sudo chmod 0644 /etc/service/nomad/default.conf
sudo chmod 0644 /etc/service/nomad/servers.conf

echo "Registration with Consul..."
sudo mkdir -p /etc/consul.d
sudo mv /tmp/nomad-consul.json /etc/consul.d/nomad.json
sudo chmod 0644 /etc/consul.d/nomad.json
