find_generate_appcast() { if command -v generate_appcast >/dev/null 2>&1; then
command -v generate_appcast
return 0 fi
find "$ROOT/apps/macos/.build" -type f -path "*/artifacts/sparkle/Sparkle/bin/generate_appcast" -print -quit 2>/dev/null
}
if [[ -z "$PRIVATE_KEY_FILE" ]]; then echo"Set SPARKLE_PRIVATE_KEY_FILE to your ed25519 private key (Sparkle)." >&2
exit 1 fi if [[ ! -f "$ZIP" ]]; then echo"Zip not found: $ZIP" >&2
exit 1 fi
ZIP_DIR=$(cd "$(dirname "$ZIP")" && pwd)
ZIP_NAME=$(basename "$ZIP")
ZIP_BASE="${ZIP_NAME%.zip}"
VERSION=${SPARKLE_RELEASE_VERSION:-} if [[ -z "$VERSION" ]]; then # Accept legacy calver suffixes like -1 and prerelease forms like -beta.1 / .beta.1. if [[ "$ZIP_NAME" =~ ^OpenClaw-([0-9]+(\.[0-9]+){1,2}([-.][0-9A-Za-z]+([.-][0-9A-Za-z]+)*)?)\.zip$ ]]; then
VERSION="${BASH_REMATCH[1]}" else echo"Could not infer version from $ZIP_NAME; set SPARKLE_RELEASE_VERSION." >&2
exit 1 fi fi
TMP_DIR="$(mktemp -d)"
cleanup() { rm -rf "$TMP_DIR" if [[ "${KEEP_SPARKLE_NOTES:-0}" != "1" ]]; then rm -f "$NOTES_HTML" fi
}
trap cleanup EXIT cp -f "$ZIP""$TMP_DIR/$ZIP_NAME" if [[ -f "$ROOT/appcast.xml" ]]; then cp -f "$ROOT/appcast.xml""$TMP_DIR/appcast.xml" fi
NOTES_HTML="${ZIP_DIR}/${ZIP_BASE}.html" if [[ -x "$ROOT/scripts/changelog-to-html.sh" ]]; then "$ROOT/scripts/changelog-to-html.sh""$VERSION" >"$NOTES_HTML" else echo"Missing scripts/changelog-to-html.sh; cannot generate HTML release notes." >&2
exit 1 fi cp -f "$NOTES_HTML""$TMP_DIR/${ZIP_BASE}.html"
GENERATE_APPCAST="$(find_generate_appcast)" if [[ -z "$GENERATE_APPCAST" ]]; then echo"generate_appcast not found. Install Sparkle tooling or build the mac app first so SwiftPM emits the Sparkle binaries." >&2
exit 1 fi
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.