#!/bin/sh # astrion 启动入口:优先使用 bun(opentui FFI 需要 bun>=1.3 或 node>=26.4) # 支持经 symlink 调用(/opt/homebrew/bin/astrion -> cli/bin/astrion):先解析真实路径再定位 src # 解析符号链接得到脚本真实路径(macOS 无 readlink -f,手动逐级解析) SELF="$0" while [ -L "$SELF" ]; do LINK_DIR="$(cd -P "$(dirname "$SELF")" >/dev/null 2>&1 && pwd)" SELF="$(readlink "$SELF")" case "$SELF" in /*) ;; # 绝对路径直接用 *) SELF="$LINK_DIR/$SELF" ;; # 相对路径相对链接所在目录展开 esac done SCRIPT_DIR="$(cd -P "$(dirname "$SELF")" >/dev/null 2>&1 && pwd)" # 快速退出分支(不启动 TUI,用于安装验证与信息查询) case "${1:-}" in --version|-v) echo "astrion 0.2.0 (opentui)" exit 0 ;; --help|-h) echo "用法: astrion" echo " 在当前目录启动 Astrion CLI(当前目录即工作区,未注册时会询问创建)" echo "选项:" echo " -v, --version 显示版本" echo " -h, --help 显示本帮助" exit 0 ;; esac ENTRY="$SCRIPT_DIR/../src/main.tsx" if command -v bun >/dev/null 2>&1; then exec bun "$ENTRY" "$@" elif [ -x "$HOME/.bun/bin/bun" ]; then exec "$HOME/.bun/bin/bun" "$ENTRY" "$@" else echo "astrion: 未找到 bun 运行时(需要 bun>=1.3;https://bun.sh)" >&2 exit 1 fi