#!/bin/bash

PUPPET_MASTER='puppet-v1.int.metaunix.net'

# determine OS version
if [ -f '/etc/redhat-release' ]; then
  OS="rhel"
elif [ -f '/etc/debian_version' ]; then
  OS="debian"
elif [ -d '/etc/ubuntu-advantage' ]; then
  OS="ubuntu"
else
  OS="freebsd"
fi

read -p 'System hostname: ' HOSTNAME
read -p 'System domain: ' DOMAIN

if [ "$OS" = 'freebsd' ]; then
  # Configure system hostname
  sysrc hostname="$HOSTNAME.$DOMAIN"

  # Expand file system to match disk's bounds
  gpart recover da0 # run this first in case the disk is corrupted
  camcontrol reprobe da0 # force re-probing of the disk info
  gpart resize -i 3 da0 # re-size the root partition automatically
  zpool online -e zroot da0p3 # make ZFS resize the volume to match

  # Install Puppet
  echo -e "[agent]\nserver = $PUPPET_MASTER" > /usr/local/etc/puppet/puppet.conf
  sysrc puppet_enable="YES"
else
  # Configure system hostname
  hostnamectl set-hostname "$HOSTNAME"
fi