LEKTOR_SERVER_FLAGS=-h 127.0.0.1
# minify javascript assets, compile scss assets
LEKTOR_PLUGIN_FLAGS=-f scss -f pretifyhtml
LEKTOR_DEPLOY_FLAGS=

.PHONY: all install venv build server dev deploy

all: build

install:
	if hash apt-get 2>/dev/null; then \
	  apt-get update -qq >/dev/null && apt-get install -qq apt-utils imagemagick python3-pip python3-setuptools gcc git-lfs python3-venv rsync; \
	elif hash pacman 2>/dev/null; then \
	  pacman -Syu imagemagick python-pip glibc lib32-glibc gcc git-lfs python3-venv rsync --noconfirm; \
	elif hash dnf 2>/dev/null; then \
	  dnf install -y ImageMagick python3-pip gcc git-lfs rsync; \
	else \
	  echo -e "Please install Imagemagick, python3-pip git-lfs, python3-venv, rsync and gcc"; \
	fi

venv:
	if [ -z "${VIRTUAL_ENV}" ]; then \
	  printf "Run 'python3 -m venv lektor' to create venv.\nRun 'source lektor/bin/activate' to activate venv.\n"; \
	  printf "Run 'pip3 install wheel  --upgrade' next.\nRun 'pip3 install lektor --upgrade' to install lektor"; \
	fi

build:
	if [ -z "${VIRTUAL_ENV}" ]; then \
    printf "Run 'source lektor/bin/activate' to enable venv. Or 'make install' to create venv"; \
	else \
	  if python3 -m lektor --version 2>/dev/null; then \
	    python3 -m lektor build $(LEKTOR_PLUGIN_FLAGS); \
	  else \
	    lektor build $(LEKTOR_PLUGIN_FLAGS); \
	  fi; \
	fi

server:
	if [ -z "${VIRTUAL_ENV}" ]; then \
	  printf "Run 'source lektor/bin/activate' to enable venv. Or 'make install' to create venv"; \
	else \
	  if python3 -m lektor --version 2>/dev/null; then \
	    python3 -m lektor server $(LEKTOR_SERVER_FLAGS) $(LEKTOR_PLUGIN_FLAGS); \
	  else \
	    lektor server $(LEKTOR_SERVER_FLAGS) $(LEKTOR_PLUGIN_FLAGS); \
	  fi; \
	fi

dev:
	if [ -z "${VIRTUAL_ENV}" ]; then \
	  printf "Run 'source lektor/bin/activate' to enable venv. Or 'make install' to create venv"; \
	else \
	  lektor plugin flush-cache; \
	  lektor clean --yes; \
	  rm assets/svg/*; \
	  if python3 -m lektor --version 2>/dev/null; then \
	    python3 -m lektor server $(LEKTOR_SERVER_FLAGS) $(LEKTOR_PLUGIN_FLAGS); \
	  else \
	    lektor server $(LEKTOR_SERVER_FLAGS) $(LEKTOR_PLUGIN_FLAGS); \
	  fi; \
	fi

deploy:
	if [ -z "${VIRTUAL_ENV}" ]; then \
	  printf "Run 'source lektor/bin/activate' to enable venv. Or 'make install' to create venv"; \
	else \
	  lektor plugin flush-cache; \
	  lektor clean --yes; \
	  rm assets/svg/*; \
	  if python3 -m lektor --version 2>/dev/null; then \
	    python3 -m lektor build $(LEKTOR_PLUGIN_FLAGS) $(LEKTOR_DEPLOY_FLAGS); \
	    python3 -m lektor deploy $(LEKTOR_PLUGIN_FLAGS) $(LEKTOR_DEPLOY_FLAGS); \
	  else \
	    lektor build $(LEKTOR_PLUGIN_FLAGS) $(LEKTOR_DEPLOY_FLAGS); \
	    lektor deploy $(LEKTOR_PLUGIN_FLAGS) $(LEKTOR_DEPLOY_FLAGS); \
	  fi; \
	fi