.PHONY: all pkg_local pkg_push container container_push

all:
	/bin/true

pkg_local:
	mv ./mldata_cache /tmp
	VERBOSE=1 FORCE=1 UPLOAD=local docker compose -f ../pkgtools/docker-compose.build.yml run build
	mv /tmp/mldata_cache .

pkg_push:
	mv ./mldata_cache /tmp
	VERBOSE=1 FORCE=1 UPLOAD=scp docker compose -f ../pkgtools/docker-compose.build.yml run build
	mv /tmp/mldata_cache .

container:
	docker build --tag diffusers:latest . < ./Dockerfile

container_force:
	docker build --no-cache --tag diffusers:latest . < ./Dockerfile

container_release_beta:
	docker tag diffusers:latest reimage/diffusers:beta && docker push reimage/diffusers:beta 

container_release_datacenter:
	docker tag reimage/diffusers:beta reimage/diffusers:datacenter && docker push reimage/diffusers:datacenter

container_release_cloud:
	docker tag reimage/diffusers:beta reimage/diffusers:cloud && docker push reimage/diffusers:cloud

cache_clean:
	sudo rm -rf ./mldata_cache
	mkdir -p ./mldata_cache
	chmod -R 777 ./mldata_cache

cache_update:
	sudo docker run --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 -it --rm -e "HOME=/tmp" --gpus '"device=0"' -v $(PWD)/mldata_cache:/mldata -v $(PWD)/src:/workspace -h diffusers diffusers:latest "python3 /workspace/service.py --download --quit-after-download"
	sudo chmod -R 777 ./mldata_cache
	sudo find ./mldata_cache -exec touch -m -d '1/1/2000' {} \;

cache: cache_clean cache_update
