52 lines
2.2 KiB
Bash
52 lines
2.2 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
PROJECT_DIR="${1:-/var/www/html/hms_etria}"
|
|
# Default PHP_BIN prefers the app-compatible `php83` CLI over the bare `php`
|
|
# alias, since on some servers (e.g. CloudLinux/cPanel-style alt-php setups)
|
|
# plain `php` resolves to an older, incompatible PHP version that fails to
|
|
# even parse `spark` (composer.json requires PHP ^8.2). Override via the
|
|
# PHP_BIN env var if your server uses a different binary name/path.
|
|
PHP_BIN="${PHP_BIN:-$(command -v php83 || command -v php)}"
|
|
LOG_DIR="${PROJECT_DIR}/writable/logs/cron"
|
|
|
|
BLOCK_START="# BEGIN HMS_CI4_AUTOGENERATED_CRON"
|
|
BLOCK_END="# END HMS_CI4_AUTOGENERATED_CRON"
|
|
|
|
if [ ! -d "$PROJECT_DIR" ]; then
|
|
echo "ERROR: Project directory not found: $PROJECT_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$LOG_DIR"
|
|
|
|
TMP_CRON="$(mktemp)"
|
|
trap 'rm -f "$TMP_CRON"' EXIT
|
|
|
|
# Keep existing non-HMS cron entries, replace only this managed block.
|
|
crontab -l 2>/dev/null | awk -v start="$BLOCK_START" -v end="$BLOCK_END" '
|
|
$0 == start {in_block=1; next}
|
|
$0 == end {in_block=0; next}
|
|
!in_block {print}
|
|
' > "$TMP_CRON"
|
|
|
|
cat >> "$TMP_CRON" <<EOF
|
|
$BLOCK_START
|
|
* * * * * cd $PROJECT_DIR && $PHP_BIN spark abdm:push-sync --limit=20 --worker=cron-abdm-m2 >> $LOG_DIR/abdm_push_sync.log 2>&1
|
|
* * * * * cd $PROJECT_DIR && $PHP_BIN spark abdm:taskboard-sync --limit=20 >> $LOG_DIR/abdm_taskboard_sync.log 2>&1
|
|
* * * * * cd $PROJECT_DIR && $PHP_BIN spark abdm:sms-notify --limit=20 >> $LOG_DIR/abdm_sms_notify.log 2>&1
|
|
* * * * * cd $PROJECT_DIR && $PHP_BIN spark bridge:sync --limit 10 >> $LOG_DIR/bridge_sync.log 2>&1
|
|
* * * * * cd $PROJECT_DIR && $PHP_BIN spark snomed:process-coding >> $LOG_DIR/snomed_process.log 2>&1
|
|
*/2 * * * * cd $PROJECT_DIR && $PHP_BIN spark abdm:hiu-poll --limit=15 >> $LOG_DIR/abdm_hiu_poll.log 2>&1
|
|
*/5 * * * * cd $PROJECT_DIR && $PHP_BIN spark abdm:hiu-retry --limit=20 >> $LOG_DIR/abdm_hiu_retry.log 2>&1
|
|
30 2 * * * cd $PROJECT_DIR && $PHP_BIN spark abdm:prune-logs --days=30 --strip-payload-days=2 --optimize >> $LOG_DIR/abdm_prune_logs.log 2>&1
|
|
$BLOCK_END
|
|
EOF
|
|
|
|
crontab "$TMP_CRON"
|
|
|
|
echo "Installed HMS cron jobs for project: $PROJECT_DIR"
|
|
echo "Managed block markers: $BLOCK_START ... $BLOCK_END"
|
|
crontab -l | sed -n '/^# BEGIN HMS_CI4_AUTOGENERATED_CRON$/,/^# END HMS_CI4_AUTOGENERATED_CRON$/p'
|