default:
	@echo "No Default make command configured"
	@echo "Please use either"
	@echo "   - make curseforge"
	@echo "   - make multimc"
	@echo "   - make technic"
	@echo "   - make all"
	@echo ""
	@echo "Curseforge will make a curseforge compatible zip"
	@echo "Multimc will make a multimc zip file which contains"
	@echo "   the packwiz updater"
	@echo ""
	@echo "Technic will make a technic pack zip"
	@echo ""
	@echo "All will make all packs it can"
	@echo ""

PACKNAME := $(notdir $(CURDIR))

curseforge: preBuild
	@echo "Making Curseforge pack"
	packwiz curseforge export --pack-file .minecraft/pack.toml
	mv ./*.zip ./.build/

modrinth: preBuild
	@echo "Making Modrinth pack"
	packwiz modrinth export --pack-file .minecraft/pack.toml
	mv ./*.mrpack ./.build/

multimc: preBuild
	@echo "Making MultiMC pack"
	-rm .build/${PACKNAME}-multimc.zip
	7z a .build/${PACKNAME}-multimc.zip ./* -x!Makefile -x!README.md
	7z a .build/${PACKNAME}-multimc.zip .minecraft/packwiz-installer-bootstrap.jar -r

technic: preBuild
	@echo "Making Technic pack"
	@-mkdir .technic
	@-cp ${PACKNAME}_icon.png .technic/icon.png
	@cd .technic && java -jar ../.minecraft/packwiz-installer-bootstrap.jar ../.minecraft/pack.toml && cd ..
	@-mv .technic/frontier_mc.png .technic/icon.png
	7z a .build/${PACKNAME}-technic.zip .technic/* -r

preClean:
	-rm -rf .build

postClean:
	-rm -rf .technic
	-git gc --aggressive --prune

preBuild:
	@-mkdir .build

all: preClean curseforge modrinth multimc technic postClean

update-packwiz:
	go install github.com/packwiz/packwiz@latest
	clear
	@echo "Packwiz has been Updated"