#!/usr/bin/env bash set -euo pipefail REPO="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" BIN_DIR="${HOME}/.local/bin" PATH_MARKER="# skiff: ~/.local/bin" mkdir -p "$BIN_DIR" ln -sf "$REPO/bin/skiff" "$BIN_DIR/skiff" echo "已安装 skiff -> $BIN_DIR/skiff" PYTHONPATH="$REPO${PYTHONPATH:+:$PYTHONPATH}" python3 -m skiff bootstrap path_already_configured() { local file="$1" [[ -f "$file" ]] && grep -qF "$PATH_MARKER" "$file" } configure_bash() { local rc="${HOME}/.bashrc" if path_already_configured "$rc"; then echo "bash: $rc 已配置 PATH,跳过" return fi { echo "" echo "$PATH_MARKER" echo 'export PATH="$HOME/.local/bin:$PATH"' } >>"$rc" echo "bash: 已写入 $rc" } configure_zsh() { local rc="${HOME}/.zshrc" if path_already_configured "$rc"; then echo "zsh: $rc 已配置 PATH,跳过" return fi { echo "" echo "$PATH_MARKER" echo 'export PATH="$HOME/.local/bin:$PATH"' } >>"$rc" echo "zsh: 已写入 $rc" } configure_fish() { local fish_dir="${HOME}/.config/fish" local rc="${fish_dir}/config.fish" mkdir -p "$fish_dir" if path_already_configured "$rc"; then echo "fish: $rc 已配置 PATH,跳过" return fi { echo "" echo "$PATH_MARKER" echo 'fish_add_path -gm --prepend ~/.local/bin' } >>"$rc" echo "fish: 已写入 $rc" } configure_bash configure_zsh configure_fish echo "" echo "请重新打开终端,或执行以下命令使 PATH 生效:" echo " bash: source ~/.bashrc" echo " zsh: source ~/.zshrc" echo " fish: source ~/.config/fish/config.fish"