-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall
executable file
·44 lines (37 loc) · 1.25 KB
/
install
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
#!/bin/sh
# SPDX-License-Identifier: 0BSD
# Run `ln -f` if the destination is a symlink, or `ln -i` otherwise.
ln_Tfi () {
mkdir -p -- "$(dirname -- "${1}")" && \
if [ -L "${1}" ]; then
ln -Tsrf -- "${2}" "${1}"
else
ln -Tsri -- "${2}" "${1}"
fi
}
ln_fi () {
ln_Tfi "${1}/$(basename -- "${2}")" "${2}"
}
cd "$(dirname -- "$(readlink -ne -- "${0}")")"
# Link files needed for correct system operation.
ln_Tfi "${HOME}/.profile" 'profile'
ln_Tfi "${HOME}/.zshenv" 'profile'
ln_Tfi "${HOME}/.zshrc" 'zshrc'
ln_Tfi "${HOME}/.npmrc" 'config/npmrc'
ln_Tfi "${HOME}/.gitconfig" 'gitconfig'
ln_Tfi "${HOME}/.gitignore" 'gitignore'
ln_fi "${HOME}/.local/share" 'shrc'
# Link personal scripts to make available in PATH.
for file in 'scripts/'*; do
[ -e "${file}" ] && [ -n "${file%%*'.ignore'}" ] && \
ln_fi "${HOME}/.local/bin" "${file}"
done
# Link kakrc and its sub-files.
ln_fi "${HOME}/.config/kak" 'config/kak/kakrc'
ln_fi "${HOME}/.config/kak" 'config/kak/rc'
# Link license and gitignore templates.
ln_fi "${HOME}/templates" 'templates/gitignore'
ln_fi "${HOME}/templates" 'templates/licenses'
ln_fi "${HOME}/templates" 'templates/license-headers'
# Install Zig and Janet if they are not already installed.
exec ./postinstall