# pam/ is at bpftests/pam/, vm-credentials is written to bpftests/controller/
CREDENTIALS_FILE := ../controller/vm-credentials
VM_USER := $(shell sed -n 's/^VM_USER="\(.*\)"/\1/p' $(CREDENTIALS_FILE) 2>/dev/null)

ifeq ($(VM_USER),)
$(error VM_USER is not set. Run build.sh first to generate $(CREDENTIALS_FILE))
endif

VM_IP  := 192.168.100.10
VM_SSH := $(VM_USER)@$(VM_IP)

compile:
	gcc -fPIC -fno-stack-protector -c pam_extension.c -o pam_extension.o
	gcc -shared -o pam_extension.so pam_extension.o -lpam

prepare:
	sudo apt install libpam0g-dev

deploy: compile
	scp pam_extension.so $(VM_SSH):
	ssh $(VM_SSH) sudo mv pam_extension.so /usr/lib/x86_64-linux-gnu/security/
	ssh $(VM_SSH) bash -c "'(grep -qF \"pam_extension.so\" /etc/pam.d/sshd || (echo \"auth sufficient pam_extension.so\"; cat /etc/pam.d/sshd) > /tmp/tmp.txt && sudo mv /tmp/tmp.txt /etc/pam.d/sshd)'"
