#!/bin/bash
# This is an example maintenance script to run the recommended maintenance scripts on a weekly basis.
# You need to make sure you update the hard coded locations to match yours if you are not using the
# default locations.

export P4INSTANCE=${P4INSTANCE:-Undefined}
export P4INSTANCE=${1:-$P4INSTANCE}
if [[ $P4INSTANCE == Undefined ]]; then
   echo "Instance parameter not supplied."
   echo "You must supply the Perforce instance as a parameter to this script."
   exit 1
fi

export PATH=$PATH:/p4/sdp/Maintenance:./
source /p4/common/bin/p4_vars $P4INSTANCE
/p4/common/bin/p4login > /dev/null 2>&1

export LOG=/p4/sdp/Maintenance/${HOSTNAME}_${P4SERVER}_log.txt
export P4CLIENT=${HOSTNAME}_unload

cd "/p4/sdp/Maintenance" >> $LOG

# echo . > $LOG
# echo ======================================= >> $LOG
# echo Running unload_labels.py >> $LOG
# echo The time is: `date` >> $LOG
# unload_labels.py $P4INSTANCE >> $LOG 2>&1

echo ======================================= >> $LOG
echo Running unload_clients.py >> $LOG
echo The time is: `date` >> $LOG
unload_clients.py $P4INSTANCE >> $LOG 2>&1

### Disabled because Perforce doesn't update access times on the commit server!!! ###
# echo ======================================= >> $LOG
# echo Running delusers.py >> $LOG
# echo The time is: `date` >> $LOG
# delusers.py $P4INSTANCE >> $LOG 2>&1

echo ======================================= >> $LOG
echo Running email_pending_client_deletes.py >> $LOG
echo The time is: `date` >> $LOG
email_pending_client_deletes.py $P4INSTANCE >> $LOG 2>&1

# echo ======================================= >> $LOG
# echo Running email_pending_user_deletes.py >> $LOG
# echo The time is: `date` >> $LOG
# email_pending_user_deletes.py $P4INSTANCE >> $LOG 2>&1

echo ======================================= >> $LOG
echo Removing old unloaded clients >> $LOG
echo The time is: `date` >> $LOG
delete_unload_clients.py $P4INSTANCE >> $LOG 2>&1

echo ======================================= >> $LOG
echo Removing empty pending changes. >> $LOG
echo The time is: `date` >> $LOG
remove_empty_pending_changes.py $P4INSTANCE > /dev/null 2>&1

echo The time is: `date` >> $LOG
mail -s "Weekly maintenance log $(hostname) ${P4INSTANCE}" $MAILTO  < $LOG