-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbootstrap.sh
More file actions
executable file
·53 lines (40 loc) · 1.27 KB
/
bootstrap.sh
File metadata and controls
executable file
·53 lines (40 loc) · 1.27 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
#!/bin/bash
# Create a new symlink, replacing existing target if necessary
new_symlink() {
local path="$1"
local target="$2"
# Ensure target path is absolute
local abs_target="$(readlink -f "$target")"
if [ -e "$path" ] || [ -L "$path" ]; then
echo "Removing existing $path"
rm -rf "$path"
fi
echo "Linking $path -> $abs_target"
ln -s "$abs_target" "$path"
}
mkdir -p "$HOME/.config"
# fish config
mkdir -p "$HOME/.config/fish"
new_symlink "$HOME/.config/fish" "./.config/fish"
# Git config
cp "./.config/.gitconfig" "$HOME/.gitconfig"
# Starship config
new_symlink "$HOME/.config/starship.toml" "./.config/starship.toml"
# tmux config
mkdir -p "$HOME/.config/tmux"
new_symlink "$HOME/.config/tmux/tmux.conf" "./.config/tmux/tmux.conf"
# alacrity config
mkdir -p "$HOME/.config/alacrity"
new_symlink "$HOME/.config/alacrity" "./.config/alacrity"
# wezterm config
mkdir -p "$HOME/.config/wezterm"
new_symlink "$HOME/.config/wezterm" "./.config/wezterm"
# lazygit config
mkdir -p "$HOME/.config/lazygit"
new_symlink "$HOME/.config/lazygit/config.yml" "./.config/lazygit/config.yml"
# nvim config
mkdir -p "$HOME/.config/nvim"
new_symlink "$HOME/.config/nvim" "./.config/nvim"
# yazi config
mkdir -p "$HOME/.config/yazi"
new_symlink "$HOME/.config/yazi" "./.config/yazi"