-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathlink.sh
More file actions
executable file
·74 lines (66 loc) · 2.17 KB
/
Copy pathlink.sh
File metadata and controls
executable file
·74 lines (66 loc) · 2.17 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/bash
cd $(dirname $0)
# Function that links a file to $HOME, DELETING it there if it exists already
function linkFile() {
LINK_TO_NAME=$2
if [ -z $LINK_TO_NAME ]; then
LINK_TO_NAME=$1
fi
# if [ -a $HOME/$LINK_TO_NAME ]; then
#echo "**** Found existing $LINK_TO_NAME, skipping..."
echo "**** Found existing $LINK_TO_NAME, deleting..."
rm -rf $HOME/$LINK_TO_NAME
echo "Linking $1 to $LINK_TO_NAME"
ln -s $PWD/$1 $HOME/$LINK_TO_NAME
# elif [ -h $HOME/$LINK_TO_NAME ]; then
# echo "Already symlinked $LINK_TO_NAME, skipping..."
# else
# echo "Linking $1 to $LINK_TO_NAME"
# ln -s $PWD/$1 $HOME/$LINK_TO_NAME
# fi
}
# Link files to home and exclude the ones containing certain strings
for F in $(ls -a1 | \
grep -v '.git$' | \
grep -v disabled | \
grep -v .gitmodules | \
grep -v .gitignore | \
grep -v .dropbox | \
grep -v .bashrc | \
grep -v .config | \
grep -v .codex | \
grep -v .claude | \
grep -v setup.sh | \
grep -v link.sh | \
grep -v Desktop | \
grep -v pkglst | \
grep -v aurlst | \
grep -v piplst | \
grep -v brewlst | \
egrep -v "^..?$" | \
egrep -v "^.*un~$" | \
grep -v .DS_Store \
); do linkFile $F
done
mkdir -p $HOME/.config
ln -s $PWD/.config/nvim $HOME/.config/nvim
# .claude: symlink individual tracked entries (preserves runtime state)
mkdir -p $HOME/.claude
for F in CLAUDE.md settings.json statusline.sh skills hooks output-styles; do
rm -rf $HOME/.claude/$F
ln -s $PWD/.claude/$F $HOME/.claude/$F
done
# .codex: symlink individual entries (preserves runtime state files like auth.json, sessions/, history.jsonl)
mkdir -p $HOME/.codex
for F in config.toml AGENTS.md prompts hooks; do
rm -rf $HOME/.codex/$F
ln -s $PWD/.codex/$F $HOME/.codex/$F
done
# .codex/skills: per-skill symlinks into the shared .claude/skills set. Must stay a real
# directory: codex keeps its own bundled skills in $HOME/.codex/skills/.system/
mkdir -p $HOME/.codex/skills
for D in $PWD/.claude/skills/*/; do
N=$(basename $D)
rm -rf $HOME/.codex/skills/$N
ln -s $PWD/.claude/skills/$N $HOME/.codex/skills/$N
done