Hi there,
I am trying to use Swiftdialog prompts for installing application with deferrals
I have the following code which exits out with error code 1 when deployed by jamf , but the same code exit without any issues in vscode
So i basically use this part of the code to exit
log_message()
{
echo "$(date): $@"
}
cleanup_and_exit()
{
# If you have temp folders/files that you want to delete as this script exits, this is the place to add that
log_message "${2}"
exit "${1}"
}
Write_To_Config()
{
log_message "Writing to Plist"
$pBuddy -c "Set :CurrentDeferralTime $currentDeferralTime" "$deferralPlist"
$pBuddy -c "Set :TotalDeferralTime $TotalDeferralTime" "$deferralPlist"
# $pBuddy -c "Set :TotalDeferralTimeEpoch $TotalDeferralTimeEpoch" "$deferralPlist"
$pBuddy -c "Set :CurrentDeferralTimeEpoch $deferralDateSeconds" "$deferralPlist"
$pBuddy -c "Set :AllowedDeferralTime $AllowedDeferralTime" "$deferralPlist"
$pBuddy -c "Add :HumanReadableDeferralDate string $deferralDateReadable" "$deferralPlist" > /dev/null 2>&1
cleanup_and_exit 1 "Set deferral, Exiting."
}
#####################SCRIPT#########################################
verify_config_file
check_for_deadline
check_for_active_deferral
currentDeferralTime=$(prompt_with_deferral)
# if the user presses ok i am ready
if [[ -z "$currentDeferralTime" ]]; then
install_application
fi
#if the user presses deferral without any option , set it to defer by 1 hour
if [[ "$currentDeferralTime" == 0 ]];then
echo "Setting deferral value to 1 hour"
currentDeferralTime=3600
fi
deferralDateSeconds=$((unixEpochTime + currentDeferralTime ))
deferralDateReadable=$(date -j -f %s $deferralDateSeconds)
if [[ "$($pBuddy -c "Print :TotalDeferralTime" "$deferralPlist")" == 0 ]]; then
TotalDeferralTime=$currentDeferralTime
else
TotalDeferralTime=$(( $( $pBuddy -c "Print :TotalDeferralTime" "$deferralPlist" ) + currentDeferralTime ))
fi
Write_To_Config
First screenshot is the output from VScode
Second and third are from Jamf
I use the exact same code in VScode and JAMF , the script does everything as intended. But i see the exit status as failed in jamf and with error code 1.
Can anyone advise why is this happening and i get failed exit status in Jamf even tho the script work as intended?