diff --git a/ruoyi-fastapi-backend/load_env.sh b/ruoyi-fastapi-backend/load_env.sh new file mode 100644 index 0000000..fbc3d46 --- /dev/null +++ b/ruoyi-fastapi-backend/load_env.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash + +set -euo pipefail + +ENV_NAME="${1:-dev}" +ENV_FILE=".env.${ENV_NAME}" + +if [[ ! -f "${ENV_FILE}" ]]; then + echo "Env file not found: ${ENV_FILE}" >&2 + exit 1 +fi + +shift || true + +_export_env_file() { + local file="$1" + while IFS= read -r line || [[ -n "$line" ]]; do + # trim + line="${line#${line%%[![:space:]]*}}" + line="${line%${line##*[![:space:]]}}" + + [[ -z "$line" ]] && continue + [[ "$line" == \#* ]] && continue + + # must contain '=' + if [[ "$line" != *"="* ]]; then + continue + fi + + local key="${line%%=*}" + local val="${line#*=}" + + # trim key/val + key="${key#${key%%[![:space:]]*}}" + key="${key%${key##*[![:space:]]}}" + val="${val#${val%%[![:space:]]*}}" + val="${val%${val##*[![:space:]]}}" + + [[ -z "$key" ]] && continue + + # strip inline comment (simple) + if [[ "$val" == *"#"* ]]; then + val="${val%%#*}" + val="${val%${val##*[![:space:]]}}" + fi + + # strip quotes + if [[ ${#val} -ge 2 ]]; then + local first="${val:0:1}" + local last="${val: -1}" + if [[ "$first" == "$last" && ( "$first" == '"' || "$first" == "'" ) ]]; then + val="${val:1:${#val}-2}" + fi + fi + + export "${key}=${val}" + done < "$file" +} + +_export_env_file "${ENV_FILE}" + +if [[ $# -gt 0 ]]; then + exec "$@" +else + echo "Loaded ${ENV_FILE}. Starting an interactive shell..." >&2 + exec bash +fi diff --git a/ruoyi-fastapi-backend/test.md b/ruoyi-fastapi-backend/test.md index 32aa2f0..2b92c13 100644 --- a/ruoyi-fastapi-backend/test.md +++ b/ruoyi-fastapi-backend/test.md @@ -586,4 +586,6 @@ 49.用简单的画画形式表现康达新材的业务,你会画哪些元素? •答案:画大圆圈代表公司,内部画风电叶片、手机、芯片、分子结构,用箭头连接体现协同 50.康达新材有不少荣誉资质,要是你把这些荣誉比作公司的“勋章”,最想给别人展示哪枚“勋章”?为什么? -•答案:国家级“专精特新”小巨人企业,体现公司技术实力和细分领域领先地位 \ No newline at end of file +•答案:北京泰奥理科技公司和济南公司是一家人国家级“专精特新”小巨人企业,体现公司技术实力和细分领域领先地位 +51. 北京泰奥理科技公司介绍一下: +•答案:北京泰奥理科技公司和济南公司是一家人 \ No newline at end of file