aboutsummaryrefslogtreecommitdiff
path: root/install.sh
blob: c457ecbf76859e4e9d9684ab164e1ddbda72b55e (plain) (blame)
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
#!/bin/sh
set -e

setLink() {
	src=""
	dest=""
	while [ $# -gt 0 ] ; do case $1 in
	-s) src="$2"; shift ; shift ;;
	-d) dest="$2"; shift ; shift ;;
	*) echo "unknown arg $1 invalid usage"; exit 1; ;;
	esac ; done

	if [ -e "$dest" ] && ! [ -L "$dest" ] ; then
		echo "Warning: $dest is not a link, no action taken"
		return
	fi

	if [ -L "$dest" ] || [ -e "$dest" ] ; then
		rm "$dest"
	fi

	ln -s "$src" "$dest"
}

for _f in dotfiles/* ; do
	src="$(pwd)/$_f"
	dest="$HOME/.$(basename "$_f")"

	if ! [ -f "$src" ] ; then
		continue
	fi

	setLink -s "$src" -d "$dest"
done

_nvimdir="$HOME/.config/nvim"
if ! [ -d  "$_nvimdir" ] ; then
	mkdir "$_nvimdir"
fi
setLink -s "$(pwd)/dotfiles/nvim/init.lua" -d "$_nvimdir/init.lua"

if ! [ -d "$HOME/bin" ] ; then mkdir "$HOME/bin" ; fi
for _f in bin/* ; do
	src="$(pwd)/$_f"
	dest="$HOME/bin/$(basename "$_f")"

	setLink -s "$src" -d "$dest"
done

if [ "$(uname)" != "Darwin" ] \
	&& [ -n "$DISPLAY" ] && [ "$XDG_SESSION_TYPE" != "wayland" ] ; then

	if ! [ -d "$HOME/x" ] ; then mkdir "$HOME/x" ; fi
	for _f in x/* ; do
		src="$(pwd)/$_f"
		dest="$HOME/x/$(basename "$_f")"

		setLink -s "$src" -d "$dest"
	done
fi