Both build on packaging/stage.sh. The NSIS installer takes the staged folder and removes only what it laid out; installer.sh drives it. The AppImage gives linuxdeploy the app, the workers and libcef.so. ElyPDF's test window installs the app's menus first, as ElyTree's does. probe.yml reports what each Gitea runner holds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
30 lines
1.2 KiB
Bash
Executable File
30 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Builds dist/<Name>-<version>-windows-x86_64-setup.exe. Usage: installer.sh <slug>
|
|
set -euo pipefail
|
|
|
|
root=$(cd "$(dirname "$0")/../.." && pwd)
|
|
slug=${1:?app slug, such as ely-doc}
|
|
dist=${ELY_DIST:-$root/dist}
|
|
name=$(awk -F'\t' -v slug="$slug" '$1 == slug { print $2 }' "$root/packaging/apps.tsv")
|
|
[ -n "$name" ] || {
|
|
echo "installer.sh: unknown app $slug" >&2
|
|
exit 1
|
|
}
|
|
version=$(awk -F'"' '/^version = / { print $2; exit }' "$root/Cargo.toml")
|
|
makensis=${MAKENSIS:-"/c/Program Files (x86)/NSIS/makensis.exe"}
|
|
[ -x "$makensis" ] || {
|
|
echo "installer.sh: no makensis at $makensis; install NSIS" >&2
|
|
exit 1
|
|
}
|
|
stage=$root/target/stage/$slug
|
|
"$root/packaging/stage.sh" "$slug" "$stage"
|
|
types=$root/target/stage/$slug-types.nsh
|
|
"$root/packaging/windows/types.sh" "$slug" >"$types"
|
|
mkdir -p "$dist"
|
|
out=$dist/$name-$version-windows-x86_64-setup.exe
|
|
"$makensis" -V2 -DAPP_NAME="$name" -DAPP_SLUG="$slug" -DVERSION="$version" \
|
|
-DSTAGE="$(cygpath -w "$stage")" -DICON="$(cygpath -w "$root/assets/icons/$slug.ico")" \
|
|
-DTYPES="$(cygpath -w "$types")" -DOUTFILE="$(cygpath -w "$out")" \
|
|
"$(cygpath -w "$root/packaging/windows/installer.nsi")"
|
|
echo "$out"
|