OmniNX/scripts/build-all.sh
niklascfw 1088935618
Scripts: add PowerShell build script
Replace umlauts with ae/oe/ue in build scripts.
2026-04-09 22:33:08 +02:00

88 lines
2.9 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 "Loesche Output-Verzeichnis..."
rm -rf "$OUTPUT_DIR"
mkdir -p "$OUTPUT_DIR"
echo "Output-Verzeichnis geloescht."
}
# Update manifest.ini and Sphaira theme version in build directory
update_manifest_version() {
local build_dir="$1"
local variant_dir="$2"
local base="$build_dir/$variant_dir"
local manifest_path="$base/config/omninx/manifest.ini"
local theme_path="$base/config/sphaira/themes/omninx.ini"
for path in "$manifest_path" "$theme_path"; do
if [[ -f "$path" ]]; then
if [[ "$(uname)" == "Darwin" ]]; then
sed -i '' "s/^version=.*/version=$VERSION/" "$path"
else
sed -i "s/^version=.*/version=$VERSION/" "$path"
fi
fi
done
}
# 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 drueber
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 drueber
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."