#!/bin/bash
#  $Id: sm_activate 26714 2012-09-05 14:52:33Z teetov $
# -----------------------------------------------------------------------------
#  Name:    sm:install
#  Purpose: sm specific installation steps by apl
#
#  Note:    started from base:install.root
#
#  env:     following variables are avaiable:
#           APL      APL_DB_DATA
#           APL_CONF APL_DB_USR
#           APL_USR  APL_HTTPD_GRP
#           APL_VAR  APL_HTTPD_USR
#           APL_MOD  APL_VER
# -----------------------------------------------------------------------------
#  Author: Alex Teetor
#  Edited by:
#  QA by:  Mark Currell
#  Copyright: videoNEXT LLC
# -----------------------------------------------------------------------------

# umask 022 TO-BE-REMOVED
#    ============== place default options if not exist
[ -f $APL/var/conf/sm/options ] || cp $APL/sm/etc/options $APL/var/conf/sm/options

#    ============== stop sm_shepherd ===============
ps  -au apl -o pid,user,command | grep sm_shepherd | grep -v grep | cut -c 1-6 | xargs kill >/dev/null 2>&1
#    ============== create sm/status ===============
echo "STOPPED" >$APL/var/sm/status

[ "$APL_MOD" = CIRRUS ] && exit 0
[ "$APL_MOD" = SKMHA  ] && exit 0
#    ============== init if stage/default   ========
SCAN="sudo $APL/sm/sbin/sm_scan"
UMOUNT="sudo $APL/sm/sbin/sm_umount"
SMTOOL="$APL/sm/bin/sm_tool"
WHEELS="$APL/sm/bin/sm_wheels"
STORE_MOUNT="$APL/sm/bin/sm_store"
DECLARED="$APL/var/conf/sm/declared"
TARGET_OS=`uname`;

if [ $TARGET_OS = 'Darwin' ]; then    #### Darwin (OS X) version
  st=`$SCAN va-store | perl -ne 'print "\$1\n" if m/^free\s+(\S+)\s+va-store/'`
  if [ ! -z "$st" ]; then             # found a fresh store for declaration
    echo "store found id=$st"
    $SMTOOL scanstore $st | grep -q "declared ID=$st"
    if [ $? != 0 ]; then
      echo "ERROR: cannot declare 'store'";
      exit 1
    fi
    echo 'USAGE=store' >> $DECLARED/$st
  fi
  $STORE_MOUNT   # mount store if not mounted yet (for Linux it is mounted alredy)
fi

#------------------- configure default volume if present
$SCAN |grep -q va-default
if [ $? = 0 ] ; then
  $SMTOOL add va-default force
  $WHEELS ONLINE va-default
fi
#-------------final check, /vasm/store has to be mounted
/bin/df -P /vasm/store | grep -q /vasm/store
[ $? != 0 ] && {
  echo "ERROR: /vasm/store is not mounted"
  exit 1
}

if [ $TARGET_OS = 'Darwin' ]; then  #### Find and declare all vols ( Darwin (OS X) only)
 for v in `$SCAN |perl -ne 'print "\$2\n" if m/^free\s+(\S+)\s+(\S+)/'`
   do
     $SMTOOL add $v force
     $WHEELS ONLINE $v
   done
fi

exit 0
