Files
neochrome/build/packwiz

76 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
dir="$(dirname "$(readlink -f "$0")")"
root="${dir}/../"
root="$(realpath "$root")"
source "${dir}/pack.properties"
create_list() {
find "$1" -mindepth 1 -maxdepth 1 -type d | while read -r path
do
realpath -s --relative-to="${root}/pack" "$path"
done
}
create_config() {
printf '
pack_directory = "%s"
output_file_path = "%s.zip"
' "${root}/pack/$1" "${root}/dist/pack/$1"
cat "${dir}/packsquash.toml"
}
package_resources() {
printf %s\\n "$resource_list" | while read -r line
do
printf %s\\n "Squashing resourcepack \"$line\""
create_config "$line" | packsquash
done
}
package_data() {
printf %s "$data_list" | while read -r line
do
zip -r "${root}/dist/pack/${line}.zip" ${root}/pack/${line}/*
done
}
setup_index() {
packwiz refresh
awk -i inplace -v list="$list" -F '"' '
BEGIN {
split(list, parts, "\n")
for (i in parts) paths[parts[i] ".zip"]=1
}
($1 ~ /^file/) && ($2 in paths) {
print "side = \"client\""
}
{ print }
' index.toml
}
resource_list="$(create_list "${root}/pack/config/openloader/resources/")"
# echo "$resource_list"
data_list="$(create_list "${root}/pack/config/openloader/data/")"
mkdir -p "${root}/dist"
rsync -av --delete --progress "${root}/pack" "${root}/dist" \
$(printf " --exclude %s" $resource_list)
# # $(printf " --exclude %s" $data_list)
package_resources
# package_dat
cd "${root}/dist/pack" || exit
setup_index
packwiz cf export -o "${root}/dist/${TITLE}_Curseforge.zip"
packwiz mr export -o "${root}/dist/${TITLE}_Modrinth.zip"
packwiz cf export -o "${root}/dist/${TITLE}_Server.zip" -s server
cd - || exit
echo "Done!"