#!/bin/bash
# info: suspend cron job
# options: USER JOB [RESTART]
#
# The function suspends a certain job of the cron scheduler.


#----------------------------------------------------------#
#                    Variable&Function                     #
#----------------------------------------------------------#

# Argument definition
user=$1
job=$2
restart=$3

# Includes
source $VESTA/func/main.sh
source $VESTA/conf/vesta.conf


#----------------------------------------------------------#
#                    Verifications                         #
#----------------------------------------------------------#

check_args '2' "$#" 'USER JOB [RESTART]'
is_format_valid 'user' 'job'
is_object_valid 'user' 'USER' "$user"
is_object_valid 'cron' 'JOB' "$job"
is_object_unsuspended 'cron' 'JOB' "$job"


#----------------------------------------------------------#
#                       Action                             #
#----------------------------------------------------------#

# Suspending job
update_object_value 'cron' 'JOB' "$job" '$SUSPENDED' 'yes'
increase_user_value "$user" '$SUSPENDED_CRON'

# Sync system cron with user
sync_cron_jobs


#----------------------------------------------------------#
#                       Vesta                              #
#----------------------------------------------------------#

# Restarting crond
if [ "$restart" != 'no' ]; then
    $BIN/v-restart-cron
    check_result $? "Cron restart failed" >/dev/null
fi

# Logging
log_event "$OK" "$ARGUMENTS"

exit
