#!/bin/bash

set -e

if [ -n "$DIB_RHSM_USER" ] && [ -n "$DIB_RHSM_PASSWORD" ]
  then
    opts="--force"
    if [[ -n "$DIB_SAT_KEY" ]]; then
      opts="$opts --activationkey ${DIB_SAT_KEY}"
    else
      opts="$opts --username ${DIB_RHSM_USER} --password ${DIB_RHSM_PASSWORD}"
    fi
    if [[ -n "$DIB_SAT_URL" ]]; then
      if [[ "$DIB_REG_TYPE" == "rhn" ]]; then
        opts="$opts --serverUrl ${DIB_SAT_URL}"
      else
        opts="$opts --serverurl ${DIB_SAT_URL} --sslCACert /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT"
      fi
    fi
    if [[ -n "$DIB_SAT_CERT_RPM_URL" ]]; then
      yum install -y ${DIB_SAT_CERT_RPM_URL}
    fi
    if [[ "$DIB_REG_TYPE" == "rhn" ]]; then
      rhnreg_ks $opts --norhnsd
      sleep 1
      # optional channel required for diskimage-builder dependency
      channels="-a -c rhel-x86_64-server-optional-6"
      if [[ -n "$DIB_RHN_CHANNELS" ]]; then
        for chan in $DIB_RHN_CHANNELS; do
          channels="$channels -a -c $chan"
        done
      fi
      rhn-channel --user=$DIB_RHSM_USER --password=$DIB_RHSM_PASSWORD $channels
      rhn-channel -l
    else
      subscription-manager register $opts
      # wait a second to ensure consumer certificate is finished writing to disk
      sleep 1
      if [ -z $DIB_RHSM_POOL ]; then
        subscription-manager attach --auto
      else
        subscription-manager attach --pool $DIB_RHSM_POOL
      fi
      # optional repo required for diskimage-builder dependency
      repos="--enable rhel-6-server-optional-rpms"
      if [[ -n "$DIB_RHSM_REPOS" ]]; then
        for repo in $DIB_RHSM_REPOS; do
          repos="$repos --enable $repo"
        done
      fi
      subscription-manager repos $repos
      subscription-manager repos --list
    fi
fi
