/
macos-sync.sh
executable file
·50 lines (42 loc) · 1.72 KB
/
macos-sync.sh
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
#!/usr/bin/env zsh
set -e
cd "$(dirname "$0")" || exit
cp() {
echo '>' cp --verbose ${(q)@}
command cp --verbose "$@"
}
mu=~/.config/mackup
appsupport="Library/Application Support"
# repo_dir config_dir file_or_glob ...flags
vscode=( ./vscode ~/$appsupport/Code/User "*.json")
vscode_snippets=(./vscode/snippets ~/$appsupport/Code/User/snippets "*.json")
smerge_settings=(./subl/merge "$mu/$appsupport/Sublime Merge/Packages/User" "*.sublime-settings")
smerge_keymap=( ./subl/merge "$mu/$appsupport/Sublime Merge/Packages/User" "Default*.sublime-keymap")
subl_settings=( ./subl/text "$mu/$appsupport/Sublime Text 3/Packages/User" "*.sublime-settings")
bat_themes=( ./bat/themes ~/.config/bat/themes "*")
bat_config=( ./bat ~/.config/bat config)
lapce_config=( ./config/lapce ~/$appsupport/dev.lapce.Lapce-Stable "*.toml")
zed_config=( ./config/zed ~/.config/zed "*.json")
zed_themes=( ./config/zed/themes ~/.config/zed/themes "*.json")
entries=(
vscode
vscode_snippets
smerge_settings
smerge_keymap
subl_settings
bat_themes
bat_config
lapce_config
zed_config
)
for entry in $entries; do
repo_dir=${(@)${(P)entry}[1]}
config_dir=${(@)${(P)entry}[2]}
file_or_glob=${(@)${(P)entry}[3]}
flags=(${(@)${(P)entry}[4,-1]})
if [[ $1 == 'to-local' ]]; then
cp "${flags[@]}" $repo_dir/${~file_or_glob} --target-directory=$config_dir
else
cp "${flags[@]}" $config_dir/${~file_or_glob} --target-directory=$repo_dir
fi
done