docker := $(shell sh -c '[ -f "/usr/bin/docker" ] && echo "docker" || echo "podman"')
voldir := "/home/docker/volumes"
bindir := "$(voldir)/binpkgs"
distdir := "$(voldir)/distfiles"
confdir := "$(voldir)/darklin"
vols := "-v $(bindir):/var/cache/binpkgs -v $(distdir):/var/cache/distfiles -v $(confdir):/darklin"


all: build
install: push

.PHONY: rebuild builder update bash connect start stop restart bash logs debug cancel bootstrap reinit check

# This is bootstrap image
bootstrap: bootstrap/Dockerfile
	$(docker) build --tag chsa/gbootstrap:latest bootstrap

reinit: bootstrap/Dockerfile
	$(docker) build --no-cache --tag chsa/gbootstrap:latest bootstrap

check: bootstrap/Dockerfile
	mkdir -p $(bindir) $(distdir) $(confdir);\
	if [ `$(docker) ps -a | grep chsa/gbootstrap | wc -l` -gt 0 ]; then \
	        $(docker) rm gbootstrap ;\
	fi ;\
	eval $(docker) run --privileged $(vols) --name gbootstrap -it chsa/gbootstrap:latest /bin/bash


# This is builder itself
builder: bootstrap bootstrap/Dockerfile
	$(docker) build --tag chsa/gbuilder:latest builder

update: builder/Dockerfile
	$(docker) build --no-cache --tag chsa/gbuilder:latest builder

bash:
	mkdir -p $(bindir) ;\
	if [ `$(docker) ps | grep chsa/gbuilder:latest | wc -l` -eq 0 ]; then \
	    if [ `$(docker) ps -a | grep gbuilder:latest | wc -l` -gt 0 ]; then \
	        echo "Stalled copy... Remove to continue..." ;\
	        echo "$(docker) rm gbuilder" ;\
	        exit 1 ;\
	    fi ;\
	    eval $(docker) run --privileged $(vols) --name gbuilder -it chsa/gbuilder:latest /bin/bash ;\
	else \
	    echo "Already running..." ;\
	fi

build:
	mkdir -p $(bindir) $(distdir) $(confdir) ;\
	if [ `$(docker) ps | grep chsa/gbuilder:latest | wc -l` -eq 0 ]; then \
	    if [ `$(docker) ps -a | grep gbuilder:latest | wc -l` -gt 0 ]; then \
	        echo "Stalled copy... Remove to continue..." ;\
	        echo "$(docker) rm gbuilder" ;\
	        exit 1 ;\
	    fi ;\
	    eval $(docker) run --privileged $(vols) --name gbuilder -t -d chsa/gbuilder:latest ;\
	else \
	    echo "Already running..." ;\
	fi

stop:
	@if [ `$(docker) ps | grep gbuilder | wc -l` -gt 0 ]; then \
	    $(docker) stop gbuilder ;\
	fi

cancel:
	@if [ `$(docker) ps -a | grep gbuilder | wc -l` -gt 0 ]; then \
	    $(docker) stop gbuilder ;\
	    $(docker) rm -f gbuilder ;\
	fi

restart:
	make cancel
	make build

# Control
logs:
	$(docker) logs -f gbuilder

connect:
	$(docker) exec -it gbuilder /bin/bash

# Slow & big, avoid if possible
debug: stop
	echo "Generating image from container. Thats slow!" ; \
	$(docker) commit gbuilder gbuilder-debug ;\
	mkdir -p $(bindir)  $(distdir) $(confdir) ;\
	eval $(docker) run --privileged $(vols) --name gbuilder-debug -ti bash