-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreate_links_mac.sh
More file actions
executable file
·115 lines (94 loc) · 3.76 KB
/
Copy pathcreate_links_mac.sh
File metadata and controls
executable file
·115 lines (94 loc) · 3.76 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/bin/bash
# ln -Fvhfs
# -s : Create symbolic link
# -F : If the target file already exists and is a directory, the remove it so that the link may occur. This option need to be use together with -f or -i
# -f : force (opposed to -i which means interactive, as in present a prompt to the user)
# -v : verbose
# -h : If the target_file or target_dir is a symbolic link, do not follow it. This is useful together with -f to replace a symlink which may point to a directory
# dotfiles in the home dir
ls -A | grep "^\." | grep -v "^\.git$" | grep -v "^\.tmux.conf." | xargs -n1 -I'{}' ln -Fvhfs ~/dotfiles/'{}' ~/'{}'
# Fish config files
mkdir -p ~/.config/fish/
ln -Fvhfs ~/dotfiles/fishfunctions ~/.config/fish/functions
ln -Fvhfs ~/dotfiles/config.fish ~/.config/fish/config.fish
# pet config files
mkdir -p ~/.config/pet
ln -Fvhfs ~/dotfiles/pet/config.toml ~/.config/pet/config.toml
ln -Fvhfs ~/dotfiles/pet/snippet.toml ~/.config/pet/snippet.toml
# SBT
mkdir -p ~/.sbt/0.13/plugins
ln -Fvhfs ~/dotfiles/sbt/0.13/plugins/plugins.sbt ~/.sbt/0.13/plugins/
mkdir -p ~/.sbt/1.0/plugins
ln -Fvhfs ~/dotfiles/sbt/1.0/plugins/plugins.sbt ~/.sbt/1.0/plugins/
# NeoVim config files
ln -Fvhfs ~/dotfiles/neovim ~/.config/nvim
ln -Fvhfs ~/dotfiles/neovim ~/.config/nvim12
# KiTTY config
mkdir -p ~/.config/kitty
ln -Fvhfs ~/dotfiles/kitty ~/.config/kitty
# don't copy qtile config in mac it doesn't make sense in macosx
#mkdir -p ~/.config/
#ln -Fvhfs ~/dotfiles/qtile ~/.config/qtile
#bin
mkdir -p ~/bin
ls bin | xargs -n1 -I'{}' ln -Fvhfs ~/dotfiles/bin/'{}' ~/bin/'{}'
mkdir -p ~/.local/bin
ln -Fvhfs ~/dotfiles/bin/ssh-keygen-enclave ~/.local/bin/ssh-keygen-enclave
ln -Fvhfs ~/dotfiles/bin/mypy ~/.local/bin/mypy
ln -Fvhfs ~/dotfiles/bin/ruff ~/.local/bin/ruff
#create system specific symlinks
ln -Fvhfs ~/dotfiles/.gitconfig_osx ~/.gitconfig_platform_specific
ln -Fvhfs ~/dotfiles/.tmux.conf.macosx ~/.tmux.conf.extra
ln -Fvhfs ~/dotfiles/.bashrc.macosx ~/.bashrc.extra
mkdir -p ~/.config/
# ln -Fvhfs ~/dotfiles/karabiner.json ~/.config/karabiner/karabiner.json
ln -Fvhfs ~/dotfiles/karabiner ~/.config/karabiner
# Unfortunately karabiner will remove the symbolic links
ln -Fvhfs ~/dotfiles/.ripgreprc ~/.ripgreprc
# emacs dirs
ln -Fvhfs ~/dotfiles/emacs.d ~/.emacs.d
# dircolors
ln -Fvhfs ~/dotfiles/.dircolors ~/.dircolors
# GPG configuration
mkdir -p ~/.gnupg
ln -Fvhfs ~/dotfiles/gpg.conf ~/.gnupg/gpg.conf
# Ghostty
mkdir -p ~/.config/ghostty
ln -Fvhfs ~/dotfiles/ghostty.conf ~/.config/ghostty/config
# SSH config
mkdir -p ~/.ssh/
ln -Fvhfs ~/dotfiles/sshconfig ~/.ssh/config
# create tmp dirs
mkdir -p ~/.vim-tmp
mkdir -p ~/.tmp
mkdir -p ~/tmp
mkdir -pv ~/.vim-tmp
mkdir -pv ~/.tmp
mkdir -pv ~/tmp
# create tmp dirs
mkdir -p ~/.vim-tmp
mkdir -p ~/.tmp
mkdir -p ~/tmp
# echo "creating systags"
# ctags -R -f ~/.vim/systags /usr/include /usr/local/include
# echo "update the plugins"
# echo "submodule update"
# (cd ~/dotfiles; git submodule init; git submodule update)
# echo "Generate help tags for ~/.vim/doc"
# (vim -u NONE -N "+helptags ~/.vim/doc" "+qall")
# echo "Install vim plugins with vim-plug"
# (vim -u ~/.vim/vundle.vim -N +PluginInstall +PluginClean +qall)
#neovim
#(nvim -N +PlugInstall +PlugClean +qall)
# (nvim +UpdateRemotePlugins +qall)
# echo "install vimproc"
# (cd ~/.vim/bundle/vimproc.vim && make)
# echo "install YouCompleteMe"
# (cd ~/.vim/bundle/YouCompleteMe && ./install.py --clang-completer) # python is implied
brew install neovim tree-sitter tree-sitter-cli node wget go \
rust microsoft-openjdk@21 php composer diff-so-fancy julia \
ripgrep fd fzf gpg pinentry-mac zoxide lefthook shfmt shellcheck mdformat yq \
gh pyenv gradle maven openjdk@21 node@18 node@22 yarn \
direnv colima docker docker-compose mysql pkg-config uv \
git-delta ykman yubico-piv-tool
# :checkhealt lazy mason