#!/usr/bin/env bash

deployment_project_root() {
  local script_dir
  script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  cd "$script_dir/../.." && pwd
}

deployment_read_version() {
  local explicit="${1:-}"
  if [ -n "$explicit" ]; then
    printf '%s\n' "$explicit"
    return 0
  fi

  local root version_file
  root="$(deployment_project_root)"
  version_file="$root/VERSION"
  if [ -f "$version_file" ]; then
    sed -n '1{s/[[:space:]]*$//;p;}' "$version_file"
    return 0
  fi

  local const_file="$root/backend/consts/const.py"
  if [ -f "$const_file" ]; then
    local line
    line="$(grep -E '^APP_VERSION[[:space:]]*=' "$const_file" | tail -n 1 || true)"
    line="${line##*=}"
    line="$(printf '%s' "$line" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//;s/^["'\'']//;s/["'\'']$//')"
    [ -n "$line" ] && printf '%s\n' "$line"
    return 0
  fi

  printf 'latest\n'
}