R7.1: bundled installers, one dmg and one setup.exe for all six apps
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
e22f276c1d
commit
b12858c7f0
9 files changed
+200
-21
No files matched your search
@@ -0,0 +1,53 @@
|
||||
; Installs the ticked apps, each by its own setup.
|
||||
Unicode true
|
||||
!include "MUI2.nsh"
|
||||
|
||||
!ifndef VERSION
|
||||
!error "pass -DVERSION"
|
||||
!endif
|
||||
!ifndef APPS
|
||||
!error "pass -DAPPS, from packaging/windows/bundle.sh"
|
||||
!endif
|
||||
!ifndef OUTFILE
|
||||
!error "pass -DOUTFILE"
|
||||
!endif
|
||||
|
||||
Name "Ely Office ${VERSION}"
|
||||
OutFile "${OUTFILE}"
|
||||
RequestExecutionLevel user
|
||||
; The setups inside are compressed already.
|
||||
SetCompress off
|
||||
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
!insertmacro MUI_LANGUAGE "SimpChinese"
|
||||
!insertmacro MUI_LANGUAGE "English"
|
||||
|
||||
LangString Failed ${LANG_SIMPCHINESE} "$R0 未装上,其安装程序退出码为 $R1(2 表示文件被占用或安装位置被占)。之前装上的应用照旧可用。"
|
||||
LangString Failed ${LANG_ENGLISH} "$R0 was not installed; its setup exited with $R1 (2: a file is in use or in the way). Apps installed before it work."
|
||||
|
||||
Function .onInit
|
||||
InitPluginsDir
|
||||
FunctionEnd
|
||||
|
||||
; One section per app; its setup runs silent.
|
||||
!macro ElyApp NAME SETUP
|
||||
Section "${NAME}"
|
||||
SetOutPath "$PLUGINSDIR"
|
||||
File "/oname=${NAME}-setup.exe" "${SETUP}"
|
||||
DetailPrint "${NAME}"
|
||||
StrCpy $R0 "${NAME}"
|
||||
ClearErrors
|
||||
ExecWait '"$PLUGINSDIR\${NAME}-setup.exe" /S' $R1
|
||||
IfErrors 0 +2
|
||||
StrCpy $R1 "-"
|
||||
Delete "$PLUGINSDIR\${NAME}-setup.exe"
|
||||
StrCmp $R1 0 ely_done_${NAME}
|
||||
MessageBox MB_ICONSTOP "$(Failed)" /SD IDOK
|
||||
SetErrorLevel 2
|
||||
Abort
|
||||
ely_done_${NAME}:
|
||||
SectionEnd
|
||||
!macroend
|
||||
|
||||
!include "${APPS}"
|
||||
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env bash
|
||||
# Builds dist/ElyOffice-<version>-windows-x86_64-setup.exe from the apps' setups.
|
||||
set -euo pipefail
|
||||
|
||||
root=$(cd "$(dirname "$0")/../.." && pwd)
|
||||
dist=${ELY_DIST:-$root/dist}
|
||||
version=$(awk -F'"' '/^version = / { print $2; exit }' "$root/Cargo.toml")
|
||||
makensis=${MAKENSIS:-"/c/Program Files (x86)/NSIS/makensis.exe"}
|
||||
[ -x "$makensis" ] || {
|
||||
echo "bundle.sh: no makensis at $makensis; install NSIS" >&2
|
||||
exit 1
|
||||
}
|
||||
apps=$root/target/stage/bundle-apps.nsh
|
||||
mkdir -p "$(dirname "$apps")"
|
||||
: >"$apps"
|
||||
for name in $(awk -F'\t' '$4 == 1 { print $2 }' "$root/packaging/apps.tsv"); do
|
||||
setup=$dist/$name-$version-windows-x86_64-setup.exe
|
||||
[ -f "$setup" ] || {
|
||||
echo "bundle.sh: no $setup; run installer.sh first" >&2
|
||||
exit 1
|
||||
}
|
||||
printf '!insertmacro ElyApp "%s" "%s"\n' "$name" "$(cygpath -w "$setup")" >>"$apps"
|
||||
done
|
||||
out=$dist/ElyOffice-$version-windows-x86_64-setup.exe
|
||||
"$makensis" -V2 -INPUTCHARSET UTF8 -DVERSION="$version" -DAPPS="$(cygpath -w "$apps")" \
|
||||
-DOUTFILE="$(cygpath -w "$out")" "$(cygpath -w "$root/packaging/windows/bundle.nsi")"
|
||||
echo "$out"
|
||||
Reference in new issue
Block a user