entrypoint.sh

← Back to workflow

Cloud Run entrypoint and job mode selector.

#!/bin/bash
# Cloud Run entrypoint for the MUR daily workflows.
#
# Prepares writable /tmp runtime paths, stages Earthdata credentials from
# Secret Manager mounts, selects the workflow from JOB_MODE, and runs the
# matching daily or monthly processing driver.
set -euo pipefail

cd /app

echo "Preparing writable environment in /tmp..."
export HOME=/tmp

mkdir -p /tmp/data /tmp/resources /tmp/logs

echo "Setting up credentials from Secret Manager mounts..."

export NETRC="${NETRC:-/tmp/.netrc}"
export URS_COOKIES="${URS_COOKIES:-/tmp/.urs_cookies}"
export ROYLIB_CONFIG="/app/config/config.yml"

if [[ -f /secrets/netrc/file ]]; then
  cp /secrets/netrc/file "$NETRC"
  chmod 600 "$NETRC"
else
  echo "ERROR: /secrets/netrc/file not found (netrc-secret mount missing?)"
  exit 1
fi

if [[ -f /secrets/cookies/file ]]; then
  cp /secrets/cookies/file "$URS_COOKIES"
else
  : > "$URS_COOKIES"
fi
chmod 600 "$URS_COOKIES"

echo "Credentials and config configured successfully."
echo "NETRC=$NETRC"
echo "URS_COOKIES=$URS_COOKIES"
echo "ROYLIB_CONFIG=$ROYLIB_CONFIG"

# ---------------------------------------------------------
# 1. Run workflow (mur41 or mur42)
# ---------------------------------------------------------
MODE="${JOB_MODE:-mur41}"
echo "-----------------------------------------------------"
echo "Starting workflow: ${MODE}"
echo "-----------------------------------------------------"

case "$MODE" in
  mur41)         SCRIPT="/app/scripts/mur_v41_downloader_dailyproc.sh" ;;
  mur42)         SCRIPT="/app/scripts/mur_v42_downloader.sh" ;;
  mur41_monthly) SCRIPT="/app/scripts/MonthlyProc/MUR41_MonProc.sh" ;;
  *)             echo "ERROR: Unknown JOB_MODE=${MODE} (use mur41, mur42, mur41_monthly)"; exit 2 ;;
esac

if [[ ! -f "$SCRIPT" ]]; then
  echo "ERROR: Script not found in image: $SCRIPT"
  echo "       Check Dockerfile COPY and script path."
  exit 1
fi

chmod +x "$SCRIPT" || true
"$SCRIPT"

echo "-----------------------------------------------------"
echo "Workflow ${MODE} completed successfully."
echo "-----------------------------------------------------"