初始化
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# =============================================
|
||||
# 被其他脚本 source,从 system.yaml 导出环境变量
|
||||
# =============================================
|
||||
# 用法:source scripts/_load_config.sh
|
||||
# =============================================
|
||||
|
||||
_load_yaml_value() {
|
||||
# 从 system.yaml 读取一个值
|
||||
# 用法: _load_yaml_value "servers.overseas_host"
|
||||
local key_path="$1"
|
||||
local default="${2:-}"
|
||||
|
||||
if command -v python3 &>/dev/null; then
|
||||
local value
|
||||
value=$(python3 -c "
|
||||
import yaml, sys
|
||||
try:
|
||||
with open('configs/system.yaml') as f:
|
||||
cfg = yaml.safe_load(f)
|
||||
parts = '${key_path}'.split('.')
|
||||
val = cfg
|
||||
for p in parts:
|
||||
val = val[p]
|
||||
print(val)
|
||||
except Exception:
|
||||
sys.exit(1)
|
||||
" 2>/dev/null) && echo "$value" && return
|
||||
fi
|
||||
echo "$default"
|
||||
}
|
||||
|
||||
# ── 导出脚本需要的变量 ──────────────────────────
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
CONFIG_DIR="$SCRIPT_DIR/../configs"
|
||||
|
||||
if [ -f "$CONFIG_DIR/system.yaml" ]; then
|
||||
export CRAWL_PROJECT_DIR="$(_load_yaml_value "servers.overseas_path" "/opt/intlgrab")"
|
||||
export LOCAL_PROJECT_DIR="$(_load_yaml_value "servers.domestic_path" "/home/pi/intlnews")"
|
||||
export OVERSEAS_HOST="$(_load_yaml_value "servers.overseas_host" "")"
|
||||
export SYNC_SENTINEL="$(_load_yaml_value "sync.sentinel" "/tmp/en_news_sync_done")"
|
||||
export SYNC_PACK_DIR="$(_load_yaml_value "sync.pack_dir" "/tmp")"
|
||||
else
|
||||
echo "WARNING: configs/system.yaml not found, using defaults"
|
||||
export CRAWL_PROJECT_DIR="/opt/intlgrab"
|
||||
export LOCAL_PROJECT_DIR="/home/pi/intlnews"
|
||||
fi
|
||||
Reference in New Issue
Block a user