-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathMakefile
113 lines (97 loc) · 2.41 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
#################### VARIABLES #############################
SHELL = /bin/bash
#################### 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: update
update:
@echo "Updating packages..."
@apt-get update
@apt-get -y upgrade
.PHONY: clean
clean:
@echo "Cleaning up..."
@apt-get -y autoremove
#################### APPS ##################################
.PHONY: base
base:
@echo "Installing base packages..."
@apt-get -y install \
build-essential \
curl \
git \
htop \
manpages-posix \
python3-pip \
software-properties-common \
stow \
tree \
unzip \
vim
.PHONY: cli
cli: go neovim
@echo "Installing cli packages..."
@apt-get -y install \
bat \
direnv \
fd-find \
git-delta \
keychain \
ripgrep \
shellcheck \
tmux \
zsh \
zsh-syntax-highlighting
.PHONY: gui
gui:
@echo "Installing gui packages..."
@apt-get -y install \
alacritty \
arc-theme \
firefox \
fonts-jetbrains-mono \
mpv \
papirus-icon-theme \
viewnior \
xfce4-taskmanager
.PHONY: go
go:
@echo "Installing go v1.23..."
@curl -fsSL -o go.tar.gz https://go.dev/dl/go1.23.3.linux-amd64.tar.gz
@rm -rf /usr/local/go && tar -C /usr/local -xzf go.tar.gz
@rm -f go.tar.gz
.PHONY: neovim
neovim:
@echo "Installing neovim nightly..."
@curl -fsSL -O https://github.com/neovim/neovim/releases/download/nightly/nvim.appimage
@install nvim.appimage /usr/bin/nvim
@rm -f nvim.appimage
.PHONY: fzf
fzf:
@echo "Installing fzf..."
@rm -rf ~/.fzf ~/.fzf-git
@git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
@git clone --depth 1 https://github.com/junegunn/fzf-git.sh.git ~/.fzf-git
@~/.fzf/install --xdg --key-bindings --completion --no-update-rc --no-bash --no-fish
#################### LANGUAGE SERVERS ######################
.PHONY: lsp
lsp: bashls gols pythonls
.PHONY: bashls
bashls:
@echo "Installing bash language server..."
@apt-get -y install nodejs npm
@npm install -g bash-language-server
.PHONY: gols
gols: go
@echo "Installing go language server..."
@GOBIN=/usr/local/go/bin /usr/local/go/bin/go install golang.org/x/tools/gopls@latest
.PHONY: pythonls
pythonls:
@echo "Installing python3 language server..."
@pip3 install --break-system-packages jedi python-lsp-server[pyflakes,pycodestyle,yapf]