b455db0db8
- default-launcher.json files: only Wow-patched.exe from release. - config-store: strip deprecated patch-Z.MPQ from merged files; rewrite launcher.json on load if user still had that entry. - Docs/scripts examples updated; version 1.0.4. Co-authored-by: Cursor <cursoragent@cursor.com>
74 lines
2.1 KiB
Bash
Executable File
74 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Upload local files to a GitHub release on the public distro repo (default: Dawnforger/Fractured-Distro).
|
|
#
|
|
# Usage (from repo root or this directory):
|
|
# export GH_TOKEN=ghp_... # PAT with repo/releases on the distro repo
|
|
# ./tools/fractured-launcher-electron/scripts/publish-to-distro.sh v1.0.0 Wow-patched.exe
|
|
#
|
|
# Optional:
|
|
# DISTRO_REPO=YourOrg/Fratured-Distro # if your GitHub slug differs
|
|
# SRC_TAG=v1.0.0 ./publish-to-distro.sh v1.0.0 # copy all assets from SOURCE_REPO release SRC_TAG
|
|
#
|
|
set -euo pipefail
|
|
|
|
DISTRO_REPO="${DISTRO_REPO:-Dawnforger/Fractured-Distro}"
|
|
SOURCE_REPO="${SOURCE_REPO:-Dawnforger/Fractured}"
|
|
|
|
if ! command -v gh >/dev/null 2>&1; then
|
|
echo "Install GitHub CLI: https://cli.github.com/"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "${GH_TOKEN:-}" ]; then
|
|
echo "Set GH_TOKEN to a PAT with releases write access to ${DISTRO_REPO}."
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$#" -lt 1 ]; then
|
|
echo "Usage: $0 <release-tag> [files...]"
|
|
echo " or: SRC_TAG=v1.0.0 $0 <release-tag> # copies all assets from ${SOURCE_REPO} release SRC_TAG"
|
|
exit 1
|
|
fi
|
|
|
|
TAG="$1"
|
|
shift
|
|
if [ "$#" -eq 0 ] && [ -z "${SRC_TAG:-}" ]; then
|
|
echo "After the tag, list files to upload, or set SRC_TAG=... to copy all assets from ${SOURCE_REPO}."
|
|
exit 1
|
|
fi
|
|
|
|
tmpdir=$(mktemp -d)
|
|
cleanup() { rm -rf "$tmpdir"; }
|
|
trap cleanup EXIT
|
|
|
|
if [ "$#" -eq 0 ] && [ -n "${SRC_TAG:-}" ]; then
|
|
echo "Downloading assets from ${SOURCE_REPO}@${SRC_TAG} …"
|
|
gh release download "$SRC_TAG" -R "$SOURCE_REPO" -D "$tmpdir"
|
|
else
|
|
for f in "$@"; do
|
|
if [ ! -f "$f" ]; then
|
|
echo "Not a file: $f"
|
|
exit 1
|
|
fi
|
|
cp -a "$f" "$tmpdir/"
|
|
done
|
|
fi
|
|
|
|
shopt -s nullglob
|
|
files=("$tmpdir"/*)
|
|
if [ "${#files[@]}" -eq 0 ]; then
|
|
echo "No files to upload."
|
|
exit 1
|
|
fi
|
|
|
|
if gh release view "$TAG" -R "$DISTRO_REPO" &>/dev/null; then
|
|
gh release upload "$TAG" -R "$DISTRO_REPO" "${files[@]}" --clobber
|
|
echo "Uploaded to https://github.com/${DISTRO_REPO}/releases/tag/${TAG}"
|
|
else
|
|
gh release create "$TAG" -R "$DISTRO_REPO" \
|
|
--title "Fractured ${TAG}" \
|
|
--notes "Published from ${SOURCE_REPO} (local script)." \
|
|
"${files[@]}"
|
|
echo "Created https://github.com/${DISTRO_REPO}/releases/tag/${TAG}"
|
|
fi
|