#!/bin/bash

# OpenFOAM版本信息
declare -A foamVersions=(
  [11]="/opt/openfoam11/etc/bashrc"
  [v2306]="/usr/lib/openfoam/openfoam2306/etc/bashrc"
  [v2212]="/usr/lib/openfoam/openfoam2306/etc/bashrc"
)

print_usage() {
  echo "Usage: $(basename $0) [OPTIONS] [VERSION]"
  echo "Options:"
  echo "  -h, --help         Print help"
  echo "  -v, --version      Print current version"
  echo "  -l, --list         List available versions"
}

# 定义函数
function switch_version() {

  local version=$1
  if [ -z "$version" ]; then
    version=v2306
  fi

  echo "当前版本:$WM_PROJECT_VERSION"

  source "${foamVersions[$version]}"
  
  #导出变量到环境
  export WM_PROJECT_VERSION
  
  echo "已切换版本:${WM_PROJECT_VERSION}"

  return 0

}

# 解析参数
if [ $# -ne 0 ]; then
    while [[ $# -gt 0 ]]; do
    case $1 in
      -h|--help)
        print_usage
        shift;;
      -v|--version)
        echo "当前版本:$WM_PROJECT_VERSION"
        shift;;
      -l|--list)
        for ver in "${!foamVersions[@]}"; do
           echo "$ver"
        done
        shift;;
      *)
        switch_version "$1"
        shift;;
    esac
  done 
fi


# 打印版本  
#$echo "已切换版本: $WM_PROJECT_VERSION"