-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathMakefile
More file actions
504 lines (421 loc) · 17.7 KB
/
Makefile
File metadata and controls
504 lines (421 loc) · 17.7 KB
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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
export PATH := ${HOME}/.local/bin:$HOME/.local/share/mise/shims:/usr/local/bin:/usr/local/sbin:/usr/bin
export GOPATH := ${HOME}
BASE_PKGS := filesystem gcc-libs glibc bash coreutils file findutils gawk grep
BASE_PKGS += util-linux bzip2 gzip xz licenses pacman systemd systemd-sysvcompat
BASE_PKGS += iputils iproute2 autoconf automake binutils bison fakeroot flex gcc
BASE_PKGS += make patch pkgconf texinfo which archlinux-keyring debugedit libtool
BASE_PKGS += m4 groff sudo pciutils psmisc shadow procps-ng sed tar gettext
PACKAGES := base base-devel go zsh git vim tmux keychain unrar xsel atool fd
PACKAGES += unace iperf valgrind noto-fonts-emoji inkscape file-roller xclip
PACKAGES += ipcalc traceroute debootstrap oath-toolkit gvfs-smb zsh-completions
PACKAGES += imagemagick lynx the_silver_searcher cifs-utils elinks satty mold
PACKAGES += cups-pdf firefox firefox-i18n-ja gimp strace lhasa tig highlight
PACKAGES += rsync nodejs debian-archive-keyring aria2 nmap ffmpeg asciidoc sbcl
PACKAGES += aspell aspell-en screen mosh diskus gdb wmctrl pwgen linux-docs htop
PACKAGES += tcpdump gvfs lzop poppler-data cpio sysprof pkgfile p7zip ruby-rdoc
PACKAGES += gpaste optipng arch-install-scripts pandoc jq pkgstats ruby ethtool
PACKAGES += texlive-langjapanese tokei texlive-latexextra ctags hdparm eog curl
PACKAGES += typescript llvm llvm-libs lldb tree w3m whois csvkit shellcheck fzf
PACKAGES += zsh-syntax-highlighting yq ansible parallel alsa-utils geckodriver
PACKAGES += bash-completion mathjax expect obs-studio cscope pdfgrep cmatrix btop
PACKAGES += jpegoptim nethogs plocate pacman-contrib x11-ssh-askpass streamlink
PACKAGES += jhead ncdu sshfs fping syncthing terraform bat ttf-font-awesome kooha
PACKAGES += ripgrep stunnel vimiv firejail noto-fonts-extra gnome-calculator bc
PACKAGES += smartmontools wireshark-cli lsof watchexec lazygit yazi bat pdfpc
PACKAGES += gtop gopls convmv mpv man-db baobab ioping ruby-irb mkcert findomain
PACKAGES += guetzli fabric detox usleep libvterm bind lame git-lfs hex miller
PACKAGES += diffoscope dust rbw eza sslscan pyright miniserve fdupes xsv opencv
PACKAGES += gron typescript-language-server dateutils time rust rust-analyzer
PACKAGES += dconf-editor ghq gopls difftastic csvlens cloc eslint prettier trivy
PACKAGES += gnome-sound-recorder yaml-language-server biome papers typst discord
PACKAGES += mission-center pass gitui sqlitebrowser git-delta speedtest-cli
PACKAGES += jc fx httpie bash-language-server editorconfig-core-c hexedit tldr
PACKAGES += pv perl-net-ip lshw xdotool sshuttle packer libreoffice-fresh-ja
PACKAGES += ast-grep dosfstools unzip openai-codex zig zls
PACMAN := sudo pacman -S
SYSTEMD_ENABLE := sudo systemctl --now enable
.DEFAULT_GOAL := help
.PHONY: all allinstall allupdate allbackup
help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
| sort \
| awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
all: allinstall allupdate allbackup
${HOME}/.local:
mkdir -p $<
rclone: ## Init rclone
$(PACMAN) $@
chmod 600 ${PWD}/.config/rclone/rclone.conf
test -L ${HOME}/.config/rclone || rm -rf ${HOME}/.config/rclone
ln -vsfn {${PWD},${HOME}}/.config/rclone
gnupg: ## Deploy gnupg (Run after rclone)
$(PACMAN) $@ git-crypt
mkdir -p ${HOME}/.$@
ln -vsf {${PWD},${HOME}}/.$@/gpg-agent.conf
ssh: ## Init ssh
$(PACMAN) open$@
mkdir -p ${HOME}/.$@
chmod 600 ${HOME}/.ssh/id_rsa
sudo ln -vsf {${PWD},}/etc/ssh/sshd_config
emacs: ## Init emacs
$(PACMAN) emacs
test -L ${HOME}/.emacs.d || rm -rf ${HOME}/.emacs.d
ln -vsfn {${PWD},${HOME}}/.emacs.d
init: ## Initial deploy dotfiles
test -L ${HOME}/.config/btop || rm -rf ${HOME}/.config/btop
ln -vsfn {${PWD},${HOME}}/.config/btop
ln -vsf {${PWD},${HOME}}/.lesskey
lesskey
for item in zshrc vimrc bashrc myclirc tmux.conf screenrc aspell.conf gitconfig netrc authinfo; do
ln -vsf {${PWD},${HOME}}/.$$item
done
chmod 600 ${PWD}/.netrc
mkdir -p ${HOME}/.config/mpv
ln -vsf {${PWD},${HOME}}/.config/mpv/mpv.conf
sudo ln -vsf {${PWD},}/etc/hosts
sudo ln -vsf {${PWD},/root}/.vimrc
base: ## Install base and base-devel package
$(PACMAN) $(BASE_PKGS)
install: ## Install arch linux packages using pacman
$(PACMAN) $(PACKAGES)
$(PACMAN) pkgfile
sudo pkgfile --update
hyprland: ## Setup hyprland
$(PACMAN) hyprland fuzzel wlr-randr waybar brightnessctl hyprlock
$(PACMAN) xdg-desktop-portal-hyprland hypridle network-manager-applet
$(PACMAN) mako hyprshot qt5ct qt6ct kvantum kvantum-qt5 hyprpolkitagent
$(PACMAN) hyprsunset pavucontrol wl-clip-persist nwg-displays pipewire
$(PACMAN) wireplumber pipewire-pulse pcmanfm-qt xdg-desktop-portal-gtk
$(PACMAN) wl-clipboard hyprpaper wf-recorder
yay -S wlogout
test -L ${HOME}/.config/hypr || rm -rf ${HOME}/.config/hypr
ln -vsfn {${PWD},${HOME}}/.config/hypr
test -L ${HOME}/.config/waybar || rm -rf ${HOME}/.config/waybar
ln -vsfn {${PWD},${HOME}}/.config/waybar
test -L ${HOME}/.config/mako || rm -rf ${HOME}/.config/mako
ln -vsfn {${PWD},${HOME}}/.config/mako
test -L ${HOME}/.config/fuzzel || rm -rf ${HOME}/.config/fuzzel
ln -vsfn {${PWD},${HOME}}/.config/fuzzel
mkdir -p ${HOME}/.config/wlogout
sudo ln -vsf ${PWD}/.config/wlogout/wlogout.desktop /usr/share/applications/wlogout.desktop
ln -vsf {${PWD},${HOME}}/.config/wlogout/style.css
chmod +x ${PWD}/.config/hypr/scripts/*
greetd: ## Setup greetd
$(PACMAN) $@ greetd-tuigreet
sudo ln -vsf {${PWD},}/etc/$@/config.toml
sudo ln -vsf {${PWD},}/etc/pam.d/greetd
systemctl enable greetd.service
goinstall: ${HOME}/.local ## Install go packages
go install golang.org/x/tools/cmd/goimports@latest
go install github.com/kyoshidajp/ghkw@latest
go install github.com/simeji/jid/cmd/jid@latest
go install github.com/jmhodges/jsonpp@latest
go install github.com/mithrandie/csvq@latest
mise: ## Setup mise
$(PACMAN) mise
test -L ${HOME}/.config/mise/config.toml || rm -rf ${HOME}/.config/mise/config.toml
ln -vsf {${PWD},${HOME}}/.config/mise/config.toml
mise use -g amp
mise use -g atlas
mise use -g bun
mise use -g claude-code
mise use -g codex
mise use -g deno
mise use -g duckdb
mise use -g firebase
mise use -g gemini-cli
mise use -g hugo
mise use -g marp-cli
mise use -g node
mise use -g npm:gcloud
mise use -g npm:@github/copilot-language-server
mise use -g npm:@github/copilot
mise use -g npm:@googleworkspace/cli
mise use -g npm:oxlint
mise use -g npm:playwright
mise use -g npm:ts-node
mise use -g npm:typescript
mise use -g opencode
mise use -g pnpm
mise use -g ruff
mise use -g trdsql
mise use -g usage
mise use -g uv
mise use -g yay
mise use -g youtube-dl
mise use -g yt-dlp
neomutt: ## Init neomutt mail client
$(PACMAN) neomutt urlscan
mkdir -p ${HOME}/.mutt
ln -vsf {${PWD},${HOME}}/.muttrc
mkdir -p ${HOME}/.config/urlscan
ln -vsf {${PWD},${HOME}}/.config/urlscan/config.json
for item in mailcap certifcates aliases signature; do ln -vsf {${PWD},${HOME}}/.mutt/$$item; done
ln -vsf {${PWD},${HOME}}/.goobookrc
yay -S goobook-git
goobook authenticate
codex: ## Setup openai codex
mise use -g codex
test -L ${HOME}/.codex/config.toml || rm -rf ${HOME}/.codex/config.toml
ln -vsf ${PWD}/.config/codex/config.toml ${HOME}/.codex/config.toml
alacritty: ## Init alacritty terminal
$(PACMAN) $@
test -L ${HOME}/.config/$@ || rm -rf ${HOME}/.config/$@
ln -vsfn {${PWD},${HOME}}/.config/$@
foot: ## Init foot terminal
$(PACMAN) $@
mkdir -p ${HOME}/.config/foot
ln -vsf {${PWD},${HOME}}/.config/foot/foot.ini
ghostty: ## Init ghostty terminal
$(PACMAN) $@
test -L ${HOME}/.config/$@/config || rm -rf ${HOME}/.config/$@/config
mkdir -p ${HOME}/.config/$@
ln -vsf {${PWD},${HOME}}/.config/$@/config
kitty: # Init kitty terminal
$(PACMAN) $@
test -L ${HOME}/.config/$@/$@.conf || rm -rf ${HOME}/.config/$@/$@.conf
mkdir -p ${HOME}/.config/$@
ln -vsf {${PWD},${HOME}}/.config/$@/$@.conf
ln -vsf {${PWD},${HOME}}/.config/kitty/current-theme.conf
rio: # Init rio terminal
$(PACMAN) $@
test -L ${HOME}/.config/$@ || rm -rf ${HOME}/.config/$@
ln -vsfn {${PWD},${HOME}}/.config/$@
tree-sitter: ## Install tree-sitter
$(PACMAN) tree-sitter tree-sitter-rust tree-sitter-bash tree-sitter-python
$(PACMAN) tree-sitter-javascript tree-sitter-c
yay -S tree-sitter-typescript
yay -S tree-sitter-json
yay -S tree-sitter-css
yay -S tree-sitter-yaml
yay -S tree-sitter-html
dnsmasq: ## Init dnsmasq
$(PACMAN) $@
sudo ln -vsf ${PWD}/etc/$@/resolv.$@.conf /etc/resolv.$@.conf
sudo ln -vsf ${PWD}/etc/$@/$@.conf /etc/$@.conf
sudo mkdir -p /etc/NetworkManager
sudo ln -vsf {${PWD},}/etc/NetworkManager/NetworkManager.conf
tlp: ## Setting for power saving and preventing battery deterioration
$(PACMAN) $@ powertop
sudo ln -vsf {${PWD},}/etc/$@.conf
$(SYSTEMD_ENABLE) $@.service
lvfs: ## For Linux Vendor Firmware Service
$(PACMAN) fwupd dmidecode
sudo dmidecode -s bios-version
uefiupdate: ## Update system firmware and uefi
for action in refresh get-updates update; do fwupdmgr $$action; done
gtk-theme: ## Set gtk theme
$(PACMAN) gnome-themes-extra
gsettings set org.gnome.desktop.interface gtk-theme Adwaita-dark
test -L ${HOME}/.config/gtk-4.0 || rm -rf ${HOME}/.config/gtk-4.0
ln -vsfn {${PWD},${HOME}}/.config/gtk-4.0
throttled: ## Workaround for Intel throttling issues in thinkpad x1 carbon gen6
$(PACMAN) throttled
$(SYSTEMD_ENABLE) throttled
keyring: ${HOME}/.local ## Init gnome keyrings
$(PACMAN) seahorse
test -L ${HOME}/.local/share/keyrings || rm -rf ${HOME}/.local/share/keyrings
ln -vsfn ${HOME}/{backup,.local/share}/keyrings
fcitx-mozc: ## Install fcitx-mozc
$(PACMAN) fcitx5-im fcitx5-mozc
yay -S fcitx5-skin-adwaita-dark
sudo ln -vsf {${PWD},}/etc/environment
test -L ${HOME}/.config/fcitx5/conf/clipboard.conf || rm -rf ${HOME}/.config/fcitx5/conf/clipboard.conf
ln -vsf {${PWD},${HOME}}/.config/fcitx5/conf/clipboard.conf
test -L ${HOME}/.mozc || rm -rf ${HOME}/.mozc
ln -vsfn ${HOME}/backup/mozc ${HOME}/.mozc
test -L ${HOME}/.config/fcitx5/conf/classicui.conf || rm -rf ${HOME}/.config/fcitx5/conf/classicui.conf
ln -vsf {${PWD},${HOME}}/.config/fcitx5/conf/classicui.conf
ttf-cica: ## Install Cica font
yay -S $@
dconfsetting: # Initial dconf setting
$(PACMAN) dconf-editor
dconf write /org/gnome/desktop/input-sources/xkb-options "['ctrl:nocaps']"
dconf write /org/gnome/desktop/interface/gtk-theme "'Adwaita-dark'"
dconf write /org/gnome/desktop/interface/gtk-key-theme "'Emacs'"
dconf write /org/gnome/desktop/interface/text-scaling-factor 1
dconf write /org/gnome/desktop/interface/cursor-size 30
dconf write /org/gnome/desktop/interface/clock-show-date true
dconf write /org/gnome/desktop/interface/clock-show-weekday true
dconf write /org/gnome/desktop/interface/show-battery-percentage true
dconf write /org/gnome/desktop/wm/keybindings/activate-window-menu "['']"
dconf write /org/gnome/desktop/search-providers/disable-external true
dconf write /org/gnome/desktop/privacy/remember-recent-files false
dconf write /org/gnome/shell/keybindings/toggle-overview "['<Alt>space']"
dconf write /org/gnome/mutter/dynamic-workspaces false
docker: ## Docker initial setup
$(PACMAN) $@ $@-compose
sudo usermod -aG $@ ${USER}
$(SYSTEMD_ENABLE) $@.service
podman: ## Podman initial setup
$(PACMAN) $@
$(SYSTEMD_ENABLE) io.$@.service
maria-db: mariadb
mariadb: ## Mariadb initial setup
sudo ln -vsf {${PWD},}/etc/sysctl.d/40-max-user-watches.conf
$(PACMAN) $@ $@-clients
sudo ln -vsf {${PWD},}/etc/my.cnf
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
$(SYSTEMD_ENABLE) $@.service
sudo mysql -u root < ${PWD}/$@/init.sql
mysql_secure_installation
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
mysql: ## mysql initial setup
yay mysql-clients80
yay mysql80
sudo mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql
$(SYSTEMD_ENABLE) mysqld.service
mysql_secure_installation
tailscale: ## tailscale initial setup
$(PACMAN) $@
$(SYSTEMD_ENABLE) $@d
sudo $@ up
.ONESHELL:
postgresql: ## PostgreSQL initial setup
$(PACMAN) $@
cd /home
sudo -u postgres initdb -E UTF8 --no-locale -D '/var/lib/postgres/data'
$(SYSTEMD_ENABLE) postgresql.service
sudo -u postgres createuser --interactive
eralchemy: ## Install eralchemy
$(PACMAN) graphviz
yay -S $@
mycli: ## Init mycli
mkdir -p ${HOME}/backup/$@
yay -S $@
ln -vsf ${HOME}{/backup/$@,}/.$@-history
pgcli: ## Init pgcli
mkdir -p ${HOME}/backup
yay -S $@
test -L ${HOME}/.config/pgcli || rm -rf ${HOME}/.config/pgcli
ln -vsfn ${HOME}/{backup,.config}/$@
gcloud: ## Install google cloud SDK and setting
$(PACMAN) $@ kubectl kubectx kustomize helm stern
curl https://sdk.cloud.google.com | bash
test -L ${HOME}/.config/gcloud || rm -rf ${HOME}/.config/gcloud
ln -vsfn ${HOME}/{backup,.config}/gcloud
minikube: ## Setup minikube with kvm2
$(PACMAN) $@ libvirt qemu-headless ebtables docker-machine
yay -S docker-machine-driver-kvm2
sudo usermod -a -G libvirt ${USER}
$(SYSTEMD_ENABLE) libvirtd.service
$(SYSTEMD_ENABLE) virtlogd.service
$@ config set vm-driver kvm2
kind: ## Setup kind (Kubernetes In Docker)
mise use -g kind
sudo sh -c "kind completion zsh > /usr/share/zsh/site-functions/_kind"
redis: ## Redis inital setup
$(PACMAN) $@
$(SYSTEMD_ENABLE) $@.service
dingo: ## Install dingo Google DNS over HTTPS
$(PACMAN) $@
$(SYSTEMD_ENABLE) $@.service
ccls: ## Install c,c++ language server
$(PACMAN) $@
emacspeak: ## Install emacspeak for blind person
yay -S $@
aur: ## Install arch linux AUR packages using yay
yay -S asunder downgrade geeqie git-secrets pscale-cli rgxg turso-bin vscode-langservers-extracted wkhtmltopdf-bin zoom
sequeler: ## Install gui database tools
yay -S $@-git
beekeeper: ## Setup beekeeper-studio
$(PACMAN) html-xml-utils
yay -S $@-studio-bin
test -L ${HOME}/.config/$@-studio || rm -rf ${HOME}/.config/$@-studio
ln -vsfn ${HOME}/{backup,.config}/$@-studio
gh: ## Install and setup github-cli
$(PACMAN) github-cli
test -L ${HOME}/.config/gh || rm -rf ${HOME}/.config/gh
ln -vsfn ${HOME}/{backup,.config}/gh
gh completion -s zsh > ${HOME}/.zfunc/_gh
aurplus: ## Install arch linux AUR packages using yay
yay -S appimagelauncher nkf rtags terraformer-bin
bluetooth: # Setup bluetooth
$(PACMAN) bluez bluez-utils blueman bluetui
$(SYSTEMD_ENABLE) bluetooth.service
sudo ln -vsf {${PWD},}/etc/bluetooth/main.conf
aws: ${HOME}/.local ## Init aws cli
mise use -g aws-cli
test -L ${HOME}/.aws || rm -rf ${HOME}/.aws
ln -vsfn {${PWD},${HOME}}/.$@
tmuxp: ${HOME}/.local ## Install tmuxp
$(PACMAN) $@
sudo ln -vsf {${PWD},${HOME}}/.config/main.yaml
psd: ## Profile-Sync-Daemon initial setup
yay -S profile-sync-daemon
mkdir -p ${HOME}/.config/psd
ln -vsf {${PWD},${HOME}}/.config/psd/psd.conf
echo "${USER} ALL=(ALL) NOPASSWD: /usr/bin/psd-overlay-helper" | sudo EDITOR='tee -a' visudo
systemctl --user --now enable psd.service
chromium: ## Install chromium and noto-fonts and browserpass
$(PACMAN) $@ browserpass-$@ noto-fonts noto-fonts-cjk
make -C /usr/lib/browserpass hosts-$@-user
test -L ${HOME}/.password-store || rm -rf ${HOME}/.password-store
ln -vsfn ${HOME}/backup/browserpass ${HOME}/.password-store
chrome: ## Install chrome and noto-fonts and browserpass
yay -S google-$@
$(PACMAN) browserpass noto-fonts noto-fonts-cjk
make -C /usr/lib/browserpass hosts-$@-user
test -L ${HOME}/.password-store || rm -rf ${HOME}/.password-store
ln -vsfn ${HOME}/backup/browserpass ${HOME}/.password-store
browserpass-firefox: ## Setup browserpass with firefox
$(PACMAN) browserpass-firefox
make -C /usr/lib/browserpass hosts-firefox-user
test -L ${HOME}/.password-store || rm -rf ${HOME}/.password-store
ln -vsfn ${HOME}/backup/browserpass ${HOME}/.password-store
ollama: ## Init ollama
$(PACMAN) $@
$(SYSTEMD_ENABLE) $@.service
ollama pull gemma4:e4b
edge: ## Install edge
yay -S microsoft-edge-stable-bin
neovim: ## Init neovim
$(PACMAN) $@
test -L ${HOME}/.config/nvim || rm -rf ${HOME}/.config/nvim
ln -vsfn {${PWD},${HOME}}/.config/nvim
mongodb: ## Mongodb initial setup
$(PACMAN) $@ $@-tools
$(SYSTEMD_ENABLE) $@.service
solargraph: ## Ruby language server and jekyll
yay -S ruby-$@ jekyll
gnuglobal: ${HOME}/.local ## Install gnu global
$(PACMAN) global python-pygments
elixir-ls: ## Install elixir-ls
$(PACMAN) elixir
yay -S $@
emacs-devel: ## Install development version of emacs
git clone -b emacs-30 git@github.com:emacs-mirror/emacs.git ${HOME}/src/github.com/masasam/emacs
cd ${HOME}/src/github.com/masasam/emacs && ./autogen.sh && ./configure && make && sudo make install && make clean
rm -rf ${HOME}/.emacs.d/elpa
dvd: # Backup dvd media
$(PACMAN) libdvdcss dvdbackup
backup: ## Backup arch linux packages
mkdir -p ${PWD}/archlinux
pacman -Qnq > ${PWD}/archlinux/pacmanlist
pacman -Qqem > ${PWD}/archlinux/aurlist
update: ## Update arch linux packages and save packages cache 3 generations
yay -Syu; paccache -ruk0
mysite: ## My site and blogs source(This is private repository)
ghq get -p masasam/solist
ghq get -p masasam/solistblog
ghq get -p masasam/PPAP
docker_image: docker
docker build -t dotfiles ${PWD}
testbackup: docker_image ## Test this Makefile with mount backup directory
docker run -it --name make$@ -v /home/${USER}/backup:${HOME}/backup:cached --name makefiletest -d dotfiles:latest /bin/bash
for target in install init neomutt aur pipinstall goinstall; do
docker exec -it make$@ sh -c "cd ${PWD}; make $${target}"
done
test: docker_image ## Test this Makefile with docker without backup directory
docker run -it --name make$@ -d dotfiles:latest /bin/bash
for target in install init neomutt aur pipinstall goinstall; do
docker exec -it make$@ sh -c "cd ${PWD}; make $${target}"
done
testpath: ## Echo PATH
PATH=$$PATH
@echo $$PATH
GOPATH=$$GOPATH
@echo $$GOPATH
allinstall: dconfsetting rclone gnupg ssh install emacs init keyring mise foot ghostty rio alacritty tlp ttf-cica hyprland greetd dnsmasq fcitx-mozc neomutt lvfs aur beekeeper kind gtk-theme chrome ccls gh tree-sitter tailscale codex
allupdate: update goinstall
allbackup: backup