BIN = ./.venv/bin/
PYTHON = ./.venv/bin/python
PIP = ./.venv/bin/pip

APP_NAME=app

all: install build test

ensure_repo:
	-@git init 

ensure_env: ensure_repo
	-@python3 -m venv .venv 

install: ensure_env
	$(PIP) install -e . 
	$(PIP) install git+https://molodetz.nl/retoor/zhurnal.git

format: ensure_env
	$(PIP) install shed 
	. $(BIN)/activate && shed

build: ensure_env
	$(MAKE) format
	$(PIP) install build
	$(PYTHON) -m build 

serve: ensure_env
	$(BIN)serve --host=0.0.0.0 --port=8888

run: ensure_env  
	$(BIN)zhurnal "make serve" "make bench"

bench: ensure_env
	$(BIN)bench --url=http://127.0.0.1:8888/

cli: ensure_env
	$(BIN)cli --url=wss://localhost:8888

test: ensure_env
	$(PYTHON) -m unittest $(APP_NAME).tests

repl: ensure_env
	$(BIN)repl