NAME := lambda_function
TMP_DIR := tmp_$(NAME)_pkg
ZIP_NAME := $(NAME)_pkg.zip
PYTHON_EXECUTABLE := python3.11


VENV_DIR=.venv
PBIN = $(VENV_DIR)/bin
PIP = $(VENV_DIR)/bin/pip
PY = $(VENV_DIR)/bin/python

local_virtualenv: $(VENV_DIR)/.touchfile
$(VENV_DIR)/.touchfile:  ./requirements.txt
	@test -d $(VENV_DIR) || python3 -m virtualenv -p $(PYTHON_EXECUTABLE) $(VENV_DIR)
	$(PIP) install -U pip -r ./requirements.txt awslambdaric
	@touch $(VENV_DIR)/.touchfile # thanks to that we do not recreate the venv each time

	@$(PIP) freeze


build-zip: local_virtualenv
	rm -rvf $(ZIP_NAME) $(TMP_DIR)
	$(PIP) install -t $(TMP_DIR) -r requirements.txt
	cd $(TMP_DIR) && zip -r ../$(ZIP_NAME) .
	zip $(ZIP_NAME) lambda_function.py
	rm -rf $(TMP_DIR)
