#!/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 $HESTIA/func/main.sh
source $HESTIA/conf/hestia.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"

# Perform verification if read-only mode is enabled
check_hestia_demo_mode


#----------------------------------------------------------#
#                       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


#----------------------------------------------------------#
#                       Hestia                             #
#----------------------------------------------------------#

# Restarting crond
$BIN/v-restart-cron $restart
check_result $? "Cron restart failed" >/dev/null

# Logging
log_event "$OK" "$ARGUMENTS"

exit
