feat: add script catalog and -h help for all dotfile scripts
Introduce ff script -h with auto descriptions, shared help.sh, and usage flags across script/*.sh. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+34
-11
@@ -1,4 +1,27 @@
|
||||
#!/bin/bash
|
||||
# 链接 zshrc、安装 Oh My Zsh,并将默认 shell 设为 zsh
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
# shellcheck disable=SC1091
|
||||
source "$SCRIPT_DIR/common/help.sh"
|
||||
|
||||
usage() {
|
||||
cat <<'EOF'
|
||||
用法: zsh-init
|
||||
|
||||
1. 将 ~/.zshrc 链接到 ~/.dotfile/zsh/.zshrc
|
||||
2. 若未安装则安装 Oh My Zsh(--unattended --keep-zshrc)
|
||||
3. 将默认登录 shell 设为 zsh
|
||||
|
||||
选项:
|
||||
-h, --help 显示此帮助
|
||||
|
||||
本机额外配置可写入 ~/.zshrc.local。
|
||||
EOF
|
||||
}
|
||||
|
||||
dotfile_help_requested "${1:-}" && dotfile_show_help
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
DOTFILE="${DOTFILE:-$HOME/.dotfile}"
|
||||
@@ -7,33 +30,33 @@ ZSHRC_HOME="$HOME/.zshrc"
|
||||
|
||||
echo "Link zshrc"
|
||||
if [[ -f "$ZSHRC_HOME" && ! -L "$ZSHRC_HOME" ]]; then
|
||||
mv "$ZSHRC_HOME" "$ZSHRC_HOME.bak"
|
||||
echo " 已备份原文件 -> $ZSHRC_HOME.bak"
|
||||
mv "$ZSHRC_HOME" "$ZSHRC_HOME.bak"
|
||||
echo " 已备份原文件 -> $ZSHRC_HOME.bak"
|
||||
fi
|
||||
ln -sf "$ZSHRC_REPO" "$ZSHRC_HOME"
|
||||
echo " $ZSHRC_HOME -> $ZSHRC_REPO"
|
||||
|
||||
if [[ ! -d "$HOME/.oh-my-zsh" ]]; then
|
||||
echo "安装 Oh My Zsh(--unattended:安装脚本内不改 shell、不自动进 zsh;--keep-zshrc:保留已链接的 .zshrc)…"
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended --keep-zshrc
|
||||
echo "安装 Oh My Zsh…"
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended --keep-zshrc
|
||||
else
|
||||
echo "Oh My Zsh 已存在,跳过安装 (~/.oh-my-zsh)"
|
||||
echo "Oh My Zsh 已存在,跳过安装 (~/.oh-my-zsh)"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "将默认登录 shell 设为 zsh"
|
||||
zshpath="$(command -v zsh)"
|
||||
if [[ -z "$zshpath" || ! -x "$zshpath" ]]; then
|
||||
echo "错误: 找不到可执行的 zsh,请先安装 zsh。" >&2
|
||||
exit 1
|
||||
echo "错误: 找不到可执行的 zsh,请先安装 zsh。" >&2
|
||||
exit 1
|
||||
fi
|
||||
if grep -qxF "$zshpath" /etc/shells 2>/dev/null; then
|
||||
echo " $zshpath 已在 /etc/shells 中"
|
||||
echo " $zshpath 已在 /etc/shells 中"
|
||||
else
|
||||
echo "$zshpath" | sudo tee -a /etc/shells
|
||||
echo "$zshpath" | sudo tee -a /etc/shells
|
||||
fi
|
||||
chsh -s "$zshpath"
|
||||
|
||||
echo ""
|
||||
echo "完成。当前仓库的 .zshrc 已启用 z 插件(Oh My Zsh plugins/z),默认 shell 已改为: $zshpath"
|
||||
echo "请重新登录或新开终端后生效。本机额外配置可写入 ~/.zshrc.local(不会被链接覆盖)。"
|
||||
echo "完成。默认 shell 已改为: $zshpath"
|
||||
echo "请重新登录或新开终端后生效。"
|
||||
|
||||
Reference in New Issue
Block a user