-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile
43 lines (34 loc) · 1.12 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
VERSION = 2
LIBRARY_NAME = pam_wtid.so
DESTINATION = /usr/local/lib/pam
SUDO_FILE = /etc/pam.d/sudo
PAM = auth sufficient $(LIBRARY_NAME)
EXIST = $(shell grep -q -e "^$(PAM)" "$(SUDO_FILE)"; echo $$?)
.PHONY: all clean enable disable working test test/%
all: $(LIBRARY_NAME)
clean:
rm $(LIBRARY_NAME)
$(LIBRARY_NAME): patch.py
python3 patch.py /usr/lib/pam/pam_tid.so.2 $(LIBRARY_NAME)
codesign --force -s - $(LIBRARY_NAME)
install: $(LIBRARY_NAME)
sudo mkdir -p $(DESTINATION)
sudo install -b -o root -g wheel -m 444 $(LIBRARY_NAME) $(DESTINATION)/$(LIBRARY_NAME).$(VERSION)
enable: install
ifeq ($(EXIST), 1)
sudo sed -E -i ".bak" "1s/^(#.*)$$/\1\n$(PAM)/" "$(SUDO_FILE)"
$(MAKE) working || (echo "$(LIBRARY_NAME) is not working, rolling back..." && $(MAKE) disable)
endif
disable:
ifeq ($(EXIST), 0)
sudo sed -i ".bak" -e "/^$(PAM)$$/d" "$(SUDO_FILE)"
sudo rm $(DESTINATION)/$(LIBRARY_NAME).$(VERSION)
endif
working:
ifeq ($(EXIST), 0)
sudo -v -k && echo "$(LIBRARY_NAME) is working"
else
@echo "$(LIBRARY_NAME) is not installed"
endif
test:
@$(foreach file, $(wildcard test/*), python3 patch.py $(file) /dev/null;)