summaryrefslogtreecommitdiff
path: root/build.sh
blob: d6af5d9b78346499cf2eb09ddc118566d9ceb5dc (plain)
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
#!/bin/sh

set -e

dwm_version="dwm_farajli-6.5.2"
dmenu_version="dmenu_farajli-5.3.0"
slstatus_version="slstatus_farajli-1.0.1"
st_version="st_farajli-0.9.2.1"

MAKEDIR() { mkdir -pv "${1}"; }

COPY() {
	cp -r  "${1}" "${2}"
	echo "copied" "${1}" '->' "${2}"
}

LINK() {
	ln -sf "${1}" "${2}"
	echo "linked" "${1}" '->' "${2}"
}

pkg() {
	package="${1}"
	shift
	for action in "${@}"; do
		case "${action}" in
		"sync") curl -LO https://farajli.net/archive/"${package}".tar.gz ;;
		"unpack") tar xf "${package}".tar.gz ;;
		"compile") make -C "${package}" ;;
		"install") PREFIX=${BINDIR} make -C "${package}" install ;;
		"font_install")	cp -r font "${FONTDIR}" ;;
		?)
			echo Invalid usage of pkg >&2
			return 1
		;;
		esac
	done
}

create_dirs() {
	MAKEDIR "${BINDIR}"
	MAKEDIR "${CONFDIR}"
	MAKEDIR "${DATADIR}"
	MAKEDIR "${FONTDIR}"
}

install_bash()        { COPY config/bash/bashrc              "${BASHRC}";  }
install_dunst()       {	COPY config/dunst                    "${CONFDIR}"; }
install_lf()          {	COPY config/lf                       "${CONFDIR}"; }
install_mimeapps()    {	COPY config/mimeapps.list            "${CONFDIR}"; }
install_mpv()         {	COPY config/mpv                      "${CONFDIR}"; }
install_nsxiv()       {	COPY config/nsxiv                    "${CONFDIR}"; }
install_nvim()        {	COPY config/nvim                     "${CONFDIR}"; }
install_picom()       { COPY config/picom                    "${CONFDIR}"; }
install_qutebrowser() {	COPY config/qutebrowser              "${CONFDIR}"; }
install_sxiv()        {	COPY config/sxiv                     "${CONFDIR}"; }
install_vim()         {	COPY config/vim                      "${CONFDIR}"; }
install_x11()         {	COPY config/x11                      "${CONFDIR}"; }
install_zathura()     {	COPY config/zathura                  "${CONFDIR}"; }
install_wallpapers()  { COPY config/wallpapers               "${DATADIR}"; }
install_pacman()      { sudo cp distros/arch-linux/pacman.conf /etc;       }

install_git() {
	sed '/# signingkey = <to be set manually>/d' config/git/gitconfig > "${GITCONFIG}"
	printf '%s\n' \
	"#####################################################################" \
	"Warning: Git commit/tag signing is enabled but signingKey is not set." \
	"#####################################################################" \
	"Configure it manually using:" \
	"    gpg --list-secret-keys --keyid-format=long" \
	"    git config --global user.signingkey <YOUR_KEY_ID>" >&2
}

install_sites() {
	MAKEDIR                              "${CONFDIR}"/sites
	COPY config/sites/bookmarks.txt      "${CONFDIR}"/sites
}

install_zsh() {
	MAKEDIR                              "$(dirname "${ZCACHE}")"
	touch                                "${ZCACHE}"
	COPY config/zsh/zshrc                "${ZSHRC}"
}

install_shell() {
	COPY config/shell                    "${CONFDIR}"
	LINK "${CONFDIR}"/shell/profile      "${BASHPROFILE}"
	LINK "${CONFDIR}"/shell/profile      "${ZPROFILE}"
}

install_scripts() {
	mkdir -p       "${BINDIR}"
	COPY scripts/* "${BINDIR}"
}

install_liberationmono() { pkg "LiberationMono" sync unpack font_install; }
install_dwm()            { pkg "${dwm_version}" sync unpack install;      }
install_st()             { pkg "${st_version}" sync unpack instal;        }
install_dmenu()          { pkg "${dmenu_version}" sync unpack install;    }
install_slstatus()       { pkg "${slstatus_version}" sync unpack install; }