Files
laily f3cd56b78e feat: rename skills/skiff to pouch and move ACK state under .pouch
Use ~/.pouch, the pouch CLI, and .pouch.yaml as the SSOT container.
Keep the inner skills/ packages, and store ACK project state in
.pouch/ack instead of docs/ack.
2026-08-25 15:20:02 +08:00

77 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
REPO="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BIN_DIR="${HOME}/.local/bin"
PATH_MARKER="# pouch: ~/.local/bin"
LEGACY_PATH_MARKER="# skiff: ~/.local/bin"
mkdir -p "$BIN_DIR"
ln -sf "$REPO/bin/pouch" "$BIN_DIR/pouch"
echo "已安装 pouch -> $BIN_DIR/pouch"
if [[ ! -e "$BIN_DIR/skiff" || -L "$BIN_DIR/skiff" ]]; then
ln -sf "pouch" "$BIN_DIR/skiff"
echo "已保留 skiff -> pouch(旧命令名)"
fi
PYTHONPATH="$REPO${PYTHONPATH:+:$PYTHONPATH}" python3 -m pouch bootstrap
path_already_configured() {
local file="$1"
[[ -f "$file" ]] && { grep -qF "$PATH_MARKER" "$file" || grep -qF "$LEGACY_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"