-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.zsh
More file actions
executable file
·54 lines (47 loc) · 1.89 KB
/
setup.zsh
File metadata and controls
executable file
·54 lines (47 loc) · 1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env zsh
script_dir=$(cd $(dirname $0); pwd)
echo "script dir: ${script_dir}"
if [ ! -d "${HOME}/.vim/plugins" ]
then
mkdir -p ${HOME}/.vim/plugins
ln -s ${script_dir}/rc ${HOME}/.vim
ln -s ${script_dir}/syntax ${HOME}/.vim
ln -s ${script_dir}/dict ${HOME}/.vim
ln -s ${script_dir}/vimrc ${HOME}/.vimrc
fi
# sheldon config
mkdir -p "${HOME}/.config/sheldon"
[ ! -f "${HOME}/.config/sheldon/plugins.toml" ] && \
ln -s "${script_dir}/sheldon/plugins.toml" "${HOME}/.config/sheldon/plugins.toml"
# zsh config
[ ! -f "${HOME}/.zshenv" ] && ln -s "${script_dir}/zshenv" "${HOME}/.zshenv"
[ ! -f "${HOME}/.zprofile" ] && ln -s "${script_dir}/zprofile" "${HOME}/.zprofile"
[ ! -f "${HOME}/.zshrc" ] && ln -s "${script_dir}/zshrc" "${HOME}/.zshrc"
[ ! -f "${HOME}/.tmux.conf" ] && ln -s "${script_dir}/tmux.conf" "${HOME}/.tmux.conf"
# Claude Code project config
if [ -d "${script_dir}/.claude" ]; then
for dir in commands agents; do
if [ -d "${script_dir}/.claude/${dir}" ]; then
mkdir -p "${HOME}/.claude/${dir}"
for file in "${script_dir}/.claude/${dir}"/*; do
[ -f "${file}" ] || continue
fname=$(basename "${file}")
[ ! -e "${HOME}/.claude/${dir}/${fname}" ] && \
ln -s "${file}" "${HOME}/.claude/${dir}/${fname}"
done
fi
done
# skills are subdirectories containing SKILL.md, so link each skill directory
if [ -d "${script_dir}/.claude/skills" ]; then
mkdir -p "${HOME}/.claude/skills"
for skill_dir in "${script_dir}/.claude/skills"/*/; do
[ -d "${skill_dir}" ] || continue
skill_name=$(basename "${skill_dir}")
[ ! -e "${HOME}/.claude/skills/${skill_name}" ] && \
ln -s "${skill_dir%/}" "${HOME}/.claude/skills/${skill_name}"
done
fi
fi
# Create local secret files if they don't exist
[[ -f ~/.zprofile.local ]] || touch ~/.zprofile.local
[[ -f ~/.zshrc.local ]] || touch ~/.zshrc.local