generated from modpacks/modpack-template
110 lines
3.6 KiB
Makefile
110 lines
3.6 KiB
Makefile
default:
|
|
@echo "No Default make command configured"
|
|
@echo "Please use either"
|
|
@echo " - make multimc"
|
|
@echo " - make local multimc"
|
|
@echo " - make curseforge"
|
|
@echo " - make modrinth"
|
|
@echo " - make local technic"
|
|
@echo " - make technic"
|
|
@echo " - make server"
|
|
@echo " - make all"
|
|
@echo ""
|
|
|
|
PACKNAME := $(notdir $(shell pwd))
|
|
ICONNAME := $(shell echo $(PACKNAME) | sed 's/[^a-zA-Z0-9]/_/g')
|
|
|
|
build: refresh
|
|
@mkdir -p .build
|
|
@echo "PACKNAME: ${PACKNAME}"
|
|
@echo "ICONNAME: ${ICONNAME}"
|
|
@echo "PACKURL: $(shell pw detect)"
|
|
|
|
curseforge: build
|
|
@echo "Making Curseforge pack"
|
|
packwiz curseforge export --pack-file .minecraft/pack.toml
|
|
mv ./*.zip ./.build/${PACKNAME}-curseforge.zip
|
|
|
|
modrinth: build
|
|
@echo "Making Modrinth pack"
|
|
packwiz modrinth export --pack-file .minecraft/pack.toml
|
|
mv ./*.mrpack ./.build/${PACKNAME}-modrinth.mrpack
|
|
|
|
multimc: build
|
|
@echo "Making MultiMC pack"
|
|
cp .minecraft/icon.png ./${ICONNAME}_icon.png
|
|
7z d .build/${PACKNAME}-multimc.zip ./* -r
|
|
7z d .build/${PACKNAME}-multimc.zip ./.minecraft -r
|
|
@sed -i 's#{PACKURL}#$(shell pw detect)#g' instance.cfg
|
|
@sed -i 's#{ICONNAME}#${ICONNAME}#g' instance.cfg
|
|
7z a .build/${PACKNAME}-multimc.zip ./* -r
|
|
7z a .build/${PACKNAME}-multimc.zip ./.minecraft -r
|
|
7z d .build/${PACKNAME}-multimc.zip ./.build ./.minecraft/mods ./.minecraft/pack.toml ./.minecraft/index.toml -r
|
|
-rm ./${ICONNAME}_icon.png
|
|
@-sed -i 's#$(shell pw detect)#{PACKURL}#g' instance.cfg
|
|
@-sed -i 's#${ICONNAME}#{ICONNAME}#g' instance.cfg
|
|
|
|
technic: build
|
|
@echo "Making Technic pack"
|
|
@mkdir -p .technic
|
|
-rm -rf .technic
|
|
cp -r .minecraft .technic
|
|
cp .minecraft/icon.png .technic/icon.png
|
|
cd .technic && java -jar ../.minecraft/packwiz-installer-bootstrap.jar ../.minecraft/pack.toml && cd ..
|
|
-rm -rf .technic/packwiz* .technic/index.toml .technic/pack.toml .technic/mods/*.toml
|
|
7z d .build/${PACKNAME}-technic.zip ./* ./.* -r
|
|
7z a .build/${PACKNAME}-technic.zip ./.technic/* -r
|
|
|
|
server: build
|
|
@echo "Making Server pack"
|
|
-rm -rf .server
|
|
@mkdir -p .server
|
|
mc-server-icon --icon .minecraft/icon.png --output .server/server-icon.png
|
|
cd .server && java -jar ../.minecraft/packwiz-installer-bootstrap.jar -s server ../.minecraft/pack.toml && cd ..
|
|
7z d .build/${PACKNAME}-server.zip ./* ./.* -r
|
|
7z a .build/${PACKNAME}-server.zip ./.server/* -r
|
|
|
|
preClean:
|
|
-rm -rf .build .server .technic
|
|
-rm -f ./instance.cfga*
|
|
|
|
postClean:
|
|
-git gc --aggressive --prune
|
|
-rm -f ./*_icon.png
|
|
|
|
clean: preClean postClean
|
|
|
|
all: preClean curseforge modrinth multimc technic server postClean
|
|
|
|
refresh:
|
|
pw refresh
|
|
pw modlist
|
|
|
|
update-packwiz:
|
|
go install github.com/packwiz/packwiz@latest
|
|
go install github.com/Merith-TK/packwiz-wrapper/cmd/pw@main
|
|
go install github.com/Merith-TK/utils/cmd/mc-server-icon@main
|
|
-clear
|
|
@echo "Packwiz has been Updated"
|
|
|
|
release-file: build
|
|
@echo "Generating changelog"
|
|
@pw modlist versions
|
|
@git log --pretty=format:"%h - %s (%ci)" --abbrev-commit > .build/CHANGELOG.md
|
|
@echo "" >> .build/CHANGELOG.md
|
|
@echo "<details><summary>Mod List</summary>" >> .build/CHANGELOG.md
|
|
@echo "" >> .build/CHANGELOG.md
|
|
@cat modlist.md >> .build/CHANGELOG.md
|
|
@echo "</details>" >> .build/CHANGELOG.md
|
|
|
|
run-server:
|
|
@cd .minecraft && pw refresh
|
|
@mkdir -p .run
|
|
@echo "eula=true" > .run/eula.txt
|
|
@mc-server-icon --icon .minecraft/icon.png --output .run/server-icon.png
|
|
@cd .run && java -jar ../.minecraft/packwiz-installer-bootstrap.jar ../.minecraft/pack.toml -s server
|
|
@if [ ! -f .run/server.jar ]; then \
|
|
echo "Downloading Fabric server jar..."; \
|
|
curl -o .run/server.jar https://meta.fabricmc.net/v2/versions/loader/1.21.3/0.16.9/1.0.1/server/jar; \
|
|
fi
|
|
@cd .run && java -Xmx2G -Xms2G -jar server.jar nogui
|