#!/bin/bash

# 自动生成.env文件对应的.env.example文件
generate_env_example() {
  # 清空原有的.env.example文件中的内容
  > .env.example

  # 逐行读取.env文件
  while IFS= read -r line; do
    # 去除首尾空格
    line=$(echo "$line" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
    # 如果是注释行或空白行,直接写入.env.example文件
    if [[ $line == \#* || -z $line ]]; then
      echo "$line" >> .env.example
    # 如果是键值对行,判断键名是否包含指定字符串
    elif [[ $line == *=* ]]; then
      key=$(echo "$line" | cut -d= -f1)
      value=$(echo "$line" | cut -d= -f2-)
      # 如果键名包含指定字符串,将值清空写入.env.example文件
      if [[ $key == *KEY || $key == *PASSWORD* || $key == *SECRET* || $key == *PASS || $key == *TOKEN || $key == *ID ]]; then
        echo "$key=" >> .env.example
      # 否则,清除首尾空格后原样写入.env.example文件
      else
        echo "$key=$value" >> .env.example
      fi
    fi
  done < .env
}

# 每次run后都自动生成.env.example文件
generate_env_example