#!/usr/bin/env bash

FCKIT_VERSION_STR="0.13.5.dev20250613"
FCKIT_VERSION="0.13.5"

FCKIT_MAJOR_VERSION=0
FCKIT_MINOR_VERSION=13
FCKIT_PATCH_VERSION=5

FCKIT_GIT_SHA1="596fe58ebfd47e2afd2a8a7604e9d27c7dc7aa1d"

#################################################################
# Commands
#################################################################

usage()
{
  echo "Usage: fckit [--version] [--info] [--git]"
  exit $1
}

version()
{
  echo "0.13.5"
}

print_feature()
{
  if [ -z "$1" ]; then
    echo "OFF"
  elif [[ $1 =~ (true|TRUE|ON|1) ]]; then
    echo "ON"
  else
    echo "OFF"
  fi
}


info()
{
  echo "fckit version (0.13.5), git-sha1 596fe58ebfd47e2afd2a8a7604e9d27c7dc7aa1d"
  echo ""
  echo "Build:"
  echo "  build type      : RelWithDebInfo"
  echo "  timestamp       : 20250613150949"
  echo "  op. system      : Linux-4.18.0-372.26.1.el8_6.x86_64 (linux.64)"
  echo "  processor       : x86_64"
  echo "  sources         : /src/eckit/src/fckit"
  echo "  c++ compiler    : GNU 13.3.1"
  echo "    flags         :  -pipe -O2 -g -DNDEBUG"
  echo "  fortran compiler: IntelLLVM 2025.1.1"
  echo "    flags         :  -O2 -g"
  echo ""
  echo "Features:"
  echo "  MPI             : $(print_feature )"
  echo "  final           : $(print_feature 1)"
  echo "  eckit           : $(print_feature 1)"
  echo ""
  echo "Dependencies: "
  if [ -n "1" ]; then
  echo "  eckit version (1.29.4), git-sha1 $(short_gitsha1 856aedfb45a13ce5ecd53fc0104152c22db6977f)"
  else
  echo "  None"
  fi
}

gitsha1()
{
  echo "596fe58ebfd47e2afd2a8a7604e9d27c7dc7aa1d"
}

short_gitsha1()
{
  if [ -z "$1" ]; then
    echo "unknown"
  else
    echo $1 | head -c 13
  fi
}

#################################################################
# Parse command-line
#################################################################

if test $# -eq 0; then
    usage 1
fi

while test $# -gt 0; do

    # Split --option=value in $opt="--option" and $val="value"

    opt=""
    val=""

    case "$1" in
    --*=*)
      opt=`echo "$1" | sed 's/=.*//'`
      val=`echo "$1" | sed 's/--[_a-zA-Z0-9]*=//'`
      ;;
    --*)
      opt=$1
      ;;
    *)
      break
      ;;
    esac

    # Parse options
    case "$opt" in
      --version)
        version
        ;;
      --git)
        gitsha1
          ;;
      --info)
        info
        ;;
      --)
        shift
        break
        ;;
      *)
        echo "unknown option: $opt"
        usage 1
        ;;
    esac
    shift
done
