#!/bin/bash
#
# sccl_dist_config
#
# Konfiguration von diesem Knoten auf alle anderen uebertragen
##############################################################
#
unset EXCLUDE MASTER NODE
while getopts mn:x:? op
 do
  case "$op" in
   m) MASTER=1;;
   n) NODE="`echo $OPTARG | tr '[:upper:]' '[:lower:]'`";;
   x) EXCLUDE="$OPTARG";;
   *) echo "usage: $0 [-m] [-x <excludenode>] [-n <onlynode>] [files ...]"
      exit 1
  esac
done
#
shift $(( $OPTIND - 1))
#
cd ${0%/*}
if [[ $PWD != */bin ]]
 then
  cd bin
fi
#
if [[ -f /etc/sccl/sccl.conf ]]
 then
  . globals.functions
  #
  if [[ "$STARTSTOPDIR" != /etc/sccl/* ]]
   then
    echo "STARTSTOPDIR ist nicht unter /etc/sccl und wird nicht verteilt."
    STARTSTOPDIR=''
  elif [[ ! -d "$STARTSTOPDIR" ]]
   then
    STARTSTOPDIR=''
  fi
  if [[ ! -f "$PACKAGES" ]]
   then
    PACKAGES=''
  fi
  if [[ ! -f "$RESOURCES" ]]
   then
    RESOURCES=''
  fi
  if [[ -n "$MASTER" ]]
   then
    MASTERDATA="/etc/sccl/capwd.dat /etc/sccl/certs.conf /etc/sccl/certs/private/${CLUSTER}-cakey.pem"
  else
    MASTERDATA=''
  fi
  if [[ -n "${NODE:-$NODES}" ]]
   then
    if [[ $# -gt 0 ]]
     then
      FILES=`while [[ $# -gt 0 ]]; do echo $1 | grep '^/etc/sccl/'; shift; done`
    else
      FILES="/etc/sccl/sccl.conf /etc/sccl/adminpwd.dat /etc/sccl/userpwd.dat $PACKAGES $RESOURCES $STARTSTOPDIR $MASTERDATA"
      chmod og+r $PACKAGES $RESOURCES
    fi
    if [[ -n "$FILES" ]]
     then
      for i in ${NODE:-$NODES}
       do
        if [[ "$i" != "$THISHOSTNAME" && "$i" != "$THISFQDN" && "$i" != "$EXCLUDE" ]]
         then
          tar cfz - $FILES 2>/dev/null |\
            httpget -Sf -Sa $U2WCA -Sc $U2WCERT -Sk $U2WKEY -u 'admin' -p "$(</etc/sccl/adminpwd.dat)" -m- -mf config.tgz -mn CFG -s $i:$U2WPORT "sccl_dist_config.s2w"
        fi
      done
    else
      echo "No files to dist"
    fi
  else
    echo "Node nicht definiert."
  fi
else
  echo "Cluster nicht konfiguriert."
fi
