Files
OmniNX/scripts/build-all.sh
2026-02-07 22:51:06 +01:00

85 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
OUTPUT_DIR="$PROJECT_ROOT/output"
STAGING_DIR="$PROJECT_ROOT/staging"
VARIANTS_DIR="$PROJECT_ROOT/variants"
VERSION="$(tr -d '[:space:]' < "$PROJECT_ROOT/VERSION")"
ZIP_EXCLUDE=(-x "*.DS_Store" -x "*__MACOSX*" -x "._*")
# Clear output directory
clear_output_directory() {
echo "Lösche Output-Verzeichnis..."
rm -rf "$OUTPUT_DIR"
mkdir -p "$OUTPUT_DIR"
echo "Output-Verzeichnis gelöscht."
}
# Update manifest.ini version in build directory
update_manifest_version() {
local build_dir="$1"
local variant_dir="$2"
local manifest_path="$build_dir/$variant_dir/config/omninx/manifest.ini"
if [[ -f "$manifest_path" ]]; then
if [[ "$(uname)" == "Darwin" ]]; then
sed -i '' "s/^version=.*/version=$VERSION/" "$manifest_path"
else
sed -i "s/^version=.*/version=$VERSION/" "$manifest_path"
fi
fi
}
# Light: Staging (Root) + Ordner "OmniNX Light" = variants/light
build_light() {
local build_dir
build_dir="$(mktemp -d)"
echo "Baue OmniNX Light..."
cp -R "$STAGING_DIR/." "$build_dir/"
mkdir -p "$build_dir/OmniNX Light"
cp -R "$VARIANTS_DIR/light/." "$build_dir/OmniNX Light/"
update_manifest_version "$build_dir" "OmniNX Light"
mkdir -p "$OUTPUT_DIR"
cd "$build_dir" && zip -q -r "$OUTPUT_DIR/OmniNX-Light-$VERSION.zip" . "${ZIP_EXCLUDE[@]}" && cd "$PROJECT_ROOT"
rm -rf "$build_dir"
}
# Standard: Staging (Root) + Ordner "OmniNX Standard" = light, dann standard drüber
build_standard() {
local build_dir
build_dir="$(mktemp -d)"
echo "Baue OmniNX Standard..."
cp -R "$STAGING_DIR/." "$build_dir/"
mkdir -p "$build_dir/OmniNX Standard"
cp -R "$VARIANTS_DIR/light/." "$build_dir/OmniNX Standard/"
cp -R "$VARIANTS_DIR/standard/." "$build_dir/OmniNX Standard/"
update_manifest_version "$build_dir" "OmniNX Standard"
mkdir -p "$OUTPUT_DIR"
cd "$build_dir" && zip -q -r "$OUTPUT_DIR/OmniNX-Standard-$VERSION.zip" . "${ZIP_EXCLUDE[@]}" && cd "$PROJECT_ROOT"
rm -rf "$build_dir"
}
# OC: Staging (Root) + Ordner "OmniNX OC" = light, dann standard, dann oc drüber
build_oc() {
local build_dir
build_dir="$(mktemp -d)"
echo "Baue OmniNX OC..."
cp -R "$STAGING_DIR/." "$build_dir/"
mkdir -p "$build_dir/OmniNX OC"
cp -R "$VARIANTS_DIR/light/." "$build_dir/OmniNX OC/"
cp -R "$VARIANTS_DIR/standard/." "$build_dir/OmniNX OC/"
cp -R "$VARIANTS_DIR/oc/." "$build_dir/OmniNX OC/"
update_manifest_version "$build_dir" "OmniNX OC"
mkdir -p "$OUTPUT_DIR"
cd "$build_dir" && zip -q -r "$OUTPUT_DIR/OmniNX-OC-$VERSION.zip" . "${ZIP_EXCLUDE[@]}" && cd "$PROJECT_ROOT"
rm -rf "$build_dir"
}
mkdir -p "$OUTPUT_DIR"
clear_output_directory
build_light
build_standard
build_oc
echo "Alle Varianten gebaut."