-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathMakefile
156 lines (133 loc) · 3.5 KB
/
Makefile
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#################### VARIABLES #############################
SHELL = /bin/bash
LOG = /dev/stdout
#################### COMMANDS ##############################
.PHONY: install-base
install-base: update base
.PHONY: install-cli
install-cli: install-base cli
.PHONY: install-gui
install-gui: install-base gui
.PHONY: install-lsp
install-lsp: install-base lsp
.PHONY: install-latex
install-latex: install-base latex
.PHONY: update
update:
@echo "Updating packages..."
@apt-get update > $(LOG)
@apt-get -y upgrade > $(LOG)
.PHONY: clean
clean:
@echo "Cleaning up..."
@apt-get -y autoremove > $(LOG)
#################### APPS ##################################
.PHONY: base
base:
@echo "Installing base packages..."
@apt-get -y install \
build-essential \
curl \
git \
manpages-posix \
python3-pip \
software-properties-common \
stow \
tree \
unzip \
vim \
> $(LOG)
.PHONY: cli
cli: bat delta gdb-dashboard neovim python ripgrep
@echo "Installing CLI packages..."
@apt-get -y install \
fd-find \
fzf \
htop \
shellcheck \
> $(LOG)
.PHONY: gui
gui: kitty
@echo "Installing GUI packages..."
@apt-get -y install \
arc-theme \
firefox \
papirus-icon-theme \
redshift-gtk \
rofi \
viewnior \
vlc \
> $(LOG)
.PHONY: bat
bat:
@echo "Installing bat v0.22.1..."
@curl -fsSL -o /tmp/bat.dpkg \
https://github.com/sharkdp/bat/releases/download/v0.22.1/bat_0.22.1_amd64.deb > $(LOG)
@dpkg -i /tmp/bat.dpkg > $(LOG)
@rm -f /tmp/bat.dpkg
.PHONY: delta
delta:
@echo "Installing delta v0.14.0..."
@curl -fsSL -o /tmp/delta.dpkg \
https://github.com/dandavison/delta/releases/download/0.14.0/git-delta_0.14.0_amd64.deb > $(LOG)
@dpkg -i /tmp/delta.dpkg > $(LOG)
@rm -f /tmp/delta.dpkg
.PHONY: gdb-dashboard
gdb-dashboard:
@echo "Installing gdb-dashboard..."
@curl -fsSL --create-dirs -o /etc/gdb/gdbinit \
https://raw.githubusercontent.com/cyrus-and/gdb-dashboard/master/.gdbinit > $(LOG)
.PHONY: kitty
kitty:
@echo "Installing kitty.."
@curl -fsSL -o /tmp/kitty.sh \
https://sw.kovidgoyal.net/kitty/installer.sh > $(LOG)
@bash /tmp/kitty.sh > $(LOG)
@rm -f /tmp/kitty.sh
.PHONY: neovim
neovim:
@echo "Installing Neovim nightly..."
@add-apt-repository -y ppa:neovim-ppa/unstable > $(LOG)
@apt-get update > $(LOG)
@apt-get -y install neovim > $(LOG)
.PHONY: python
python:
@echo "Installing Python3 packages..."
@pip3 install matplotlib numpy scipy > $(LOG)
.PHONY: ripgrep
ripgrep:
@echo "Installing ripgrep v13.0.0..."
@curl -fsSL -o /tmp/ripgrep.dpkg \
https://github.com/BurntSushi/ripgrep/releases/download/13.0.0/ripgrep_13.0.0_amd64.deb > $(LOG)
@dpkg -i /tmp/ripgrep.dpkg > $(LOG)
@rm -f /tmp/ripgrep.dpkg
#################### LANGUAGE SERVERS ######################
.PHONY: lsp
lsp: bashls cls gols pythonls
.PHONY: bashls
bashls:
@echo "Installing Bash language server..."
@apt-get -y install nodejs npm > $(LOG)
@npm install -g bash-language-server > $(LOG)
.PHONY: cls
cls:
@echo "Installing C/C++ language server..."
@apt-get -y install clangd-12 > $(LOG)
@update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-12 100 > $(LOG)
.PHONY: gols
gols:
@echo "Installing Go language server..."
@apt-get -y install golang > $(LOG)
.PHONY: pythonls
pythonls:
@echo "Installing Python3 language server..."
@pip3 install jedi python-lsp-server[pyflakes,pycodestyle,yapf] > $(LOG)
#################### LATEX #################################
.PHONY: latex
latex:
@echo "Installing LaTeX..."
@apt-get -y install \
latexmk \
texlive-full \
xdotool \
> $(LOG)