#!/bin/bash
set -euo pipefail
IMAGE="docker.io/klokantech/gdal:2.4"

if [ -f "${1}" ]; then
  filename=$(realpath "${1}")
  directory=$(dirname "$filename")
  basename_dir=$(basename "$directory")
  basename=$(basename "$filename")
  # Capture timestamp as vrt could change while generating COG
  VRT_TIMESTAMP=$(stat --printf="%Y" "${filename}")
  TIF_TMP_FILE=${basename}.$$.tif
  eatmydata podman run --name "gdal_translate_${basename}" --rm -v ${directory}:/data --workdir /data "${IMAGE}" nice gdal_translate \
    -co TILED=YES \
    -co COMPRESS=DEFLATE \
    -co PREDICTOR=2 \
    -co ZLEVEL=9 \
    "/data/${basename}" "/data/${TIF_TMP_FILE}"
  chmod go+r "${directory}/${TIF_TMP_FILE}"
  touch --no-create --date="@${VRT_TIMESTAMP}" "${directory}/${TIF_TMP_FILE}"
  mv "${directory}/${TIF_TMP_FILE}" "${directory}/${basename%.ecw}.tif"
fi
