-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
107 lines (85 loc) · 2.52 KB
/
Copy pathMakefile
File metadata and controls
107 lines (85 loc) · 2.52 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
SHELL := bash
.SHELLFLAGS := -eu -o pipefail -c
.ONESHELL := true
.DELETE_ON_ERROR := true
MAKEFLAGS += --warn-undefined-variables
MAKEFLAGS += --no-builtin-rules
ifeq ($(origin .RECIPEPREFIX), undefined)
>$(error This Make does not support .RECIPEPREFIX. Please use GNU Make 4.0 or later (i.e. gmake not make))
endif
.RECIPEPREFIX = >
PACKAGES=bash vim screen git keyd
.PHONY: $(PACKAGES)
ASDF=~/.asdf
VUNDLE=~/.vim/bundle
INPUTRC=/etc/inputrc
all: $(PACKAGES)
list:
>@echo $(PACKAGES)
check:
>@type stow >/dev/null 2>&1 || sudo apt install stow
bash: bash/.bashrc bash/.bash_profile bash/.git-completion.bash
>stow --target ~ bash
ifeq ($(wildcard $(INPUTRC)), $(INPUTRC))
>@if ! [ -L $(INPUTRC) ]; then \
>echo "$(INPUTRC) is NOT a symbolic link."; \
>sudo mv $(INPUTRC) $(INPUTRC).system ; \
>fi
endif
>sudo stow --target=/etc etc
git: git/.gitconfig git/.gitignore_global
>stow -t ~ git
vim: vim/.vimrc
>stow -t ~ vim
ifeq (,$(wildcard $(VUNDLE)))
>mkdir -p $(VUNDLE)
>git clone https://github.com/VundleVim/Vundle.vim.git $(VUNDLE)/Vundle.vim
endif
>vim +PluginInstall +qall
vim-clean:
>stow -D vim
>rm -rf ~/.vim
screen: screen/.screenrc screen/.screen/fast screen/.screen/slow
>stow -t ~ screen
keyd: keyd/default.conf
>sudo apt update
>sudo apt install keyd
>sudo stow -t /etc/keyd/ keyd/
>sudo service keyd restart
bluetooth: bluetooth/main.conf
>sudo mv /etc/bluetooth/main.conf /etc/bluetooth/main.conf.pkg
>sudo stow -t /etc/bluetooth/ bluetooth/
>sudo service bluetooth restart
asdf: bash
ifeq (,$(wildcard $(ASDF)))
>mkdir -p ~/.asdf
>cd ~/.asdf && git clone https://github.com/asdf-vm/asdf.git --branch v0.18.0
>cd ~/.asdf/asdf && make
endif
asdf-clean:
>rm -rf $(ASDF)
node: asdf
>asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
>asdf install nodejs latest
erlang: asdf
>sudo apt install curl build-essential autoconf m4 libncurses-dev libwxgtk3.2-dev libwxgtk-webview3.2-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev libssh-dev unixodbc-dev xsltproc fop libxml2-utils openjdk-21-jdk
>asdf plugin add erlang https://github.com/asdf-vm/asdf-erlang.git
>asdf install erlang latest
elixir: erlang
>asdf plugin add elixir https://github.com/asdf-vm/asdf-elixir.git
>asdf install elixir master
phoenix: elixir
>elixir -v
>mix archive.install hex phx_new
postgresql:
>sudo apt update
>sudo apt install postgresql
>sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
inotify:
>sudo apt update
>sudo apt install inotify-tools
clean:
>for package in $(PACKAGES) ; do \
> stow -D $$package ; \
>done
>rm -rf ~/.vim