f3cd56b78e
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.
77 lines
1.8 KiB
Bash
Executable File
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"
|