summary refs log tree commit diff
path: root/Makefile
blob: 908a6ca7809695497876ad4073203a0b8cae637f (plain) (blame)
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
CURRENT_OS:=$(shell uname -s)

INTO      = $(HOME)


INSTALL = \
	agignore \
	aspell.en.pws \
	zshenv \
	zshrc

INSTALLED = $(patsubst %,$(INTO)/.%,$(INSTALL))
LN        = @ln -sf
PACMAN    = @sudo pacman -Sy --needed --quiet

$(INTO)/.% : %
	@[ ! -e $@ ] || [ -h $@ ] || mv -f $@ $@.bak
	$(LN) $(PWD)/$< $@

$(HOME)/.ssh/authorized_keys:
	@curl https://github.com/fcuny.keys -o $(HOME)/.ssh/authorized_keys

.PHONY: systemd-user
systemd-user:
	@mkdir -p $(HOME)/.config/systemd/user

.PHONY: pamenv
pamenv:
	$(LN) $(PWD)/pam_environment $(HOME)/.pam_environment

.PHONY: ssh
ssh: systemd-user pamenv
ifeq ($(CURRENT_OS),Linux)
	$(LN) $(PWD)/config/systemd/user/ssh-agent.service $(HOME)/.config/systemd/user/ssh-agent.service
	@systemctl --user enable ssh-agent
endif

$(HOME)/workspace:
	@mkdir -p $(HOME)/workspace/

$(HOME)/workspace/go: $(HOME)/workspace
	@mkdir -p $(HOME)/workspace/go

.PHONY: go-setup
go-setup: $(HOME)/workspace/go
	@go get -u github.com/kisielk/errcheck
	@go get -u github.com/rogpeppe/godef
	@go get -u github.com/zmb3/gogetdoc
	@go get -u golang.org/x/tools/cmd/goimports
	@go get -u golang.org/x/tools/cmd/guru
	@GO111MODULE=on go get golang.org/x/tools/gopls@latest

.PHONY: git
git:
	$(LN) $(PWD)/gitconfig $(HOME)/.gitconfig
	$(LN) $(PWD)/gitignore $(HOME)/.gitignore
	@git config --local user.email "franck@fcuny.net"
	@git config --local user.name "Franck Cuny"

.PHONY: desktop
desktop:
	@mkdir -p $(HOME)/.config
	@ln -sf $(PWD)/xsession $(HOME)/.xsession
	@ln -sf $(PWD)/Xresources $(HOME)/.Xresources
	@ln -sf $(PWD)/config/i3 $(HOME)/.config/i3
	@ln -sf $(PWD)/config/mpd $(HOME)/.config/mpd
	@ln -sf $(PWD)/config/user-dirs.dirs $(HOME)/.config/user-dirs.dirs
	@ln -sf $(PWD)/config/alacritty $(HOME)/.config/alacritty

.PHONY: modmap
modmap:
	$(PACMAN) xorg-xmodmap
	@ln -sf $(PWD)/Xmodmap $(HOME)/.Xmodmap

.PHONY: emacs
emacs:
ifeq ($(CURRENT_OS),Linux)
	$(PACMAN) emacs
	$(LN) $(PWD)/emacs.d $(HOME)/.config/emacs
endif
ifeq ($(CURRENT_OS),Darwin)
	$(LN) $(PWD)/emacs.d $(HOME)/.emacs.d
endif

.PHONY: redshift
redshift:
	$(PACMAN) redshift
	$(LN) $(PWD)/config/redshift.conf $(HOME)/.config/redshift.conf
	@systemctl --user enable redshift

.PHONY: resticcfg
resticcfg:
	@mkdir -p $(HOME)/.config/restic
	$(PACMAN) restic
	$(LN) $(PWD)/config/systemd/user/backup.service $(HOME)/.config/systemd/user/backup.service
	@systemctl --user daemon-reload
	@systemctl --user enable backup

.PHONY: tmux
tmux:
ifeq ($(CURRENT_OS),Linux)
	$(PACMAN) tmux
endif
	$(LN) $(PWD)/tmux.conf $(HOME)/.tmux.conf

.PHONY: check-dead
check-dead:
	@find ~ -maxdepth 1 -name '.*' -type l -exec test ! -e {} \; -print

.PHONY: clean-dead
clean-dead:
	@find ~ -maxdepth 1 -name '.*' -type l -exec test ! -e {} \; -delete

.PHONY: install
install: $(HOME)/workspace $(HOME)/.ssh/authorized_keys git tmux emacs

.PHONY: install-linux
install-linux: redshift desktop resticcfg modmap

.PHONY: install-darwin
install-darwin: screenshots