feat: add skiff
This commit is contained in:
Executable
+69
@@ -0,0 +1,69 @@
|
||||
#!/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"
|
||||
|
||||
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"
|
||||
Reference in New Issue
Block a user