61 lines
3 KiB
NSIS
61 lines
3 KiB
NSIS
|
|
; Theseus Navigator NSIS include — bundles Ariadne's Thread as an opt-out.
|
||
|
|
;
|
||
|
|
; During install (Theseus 0.1.0+): if Ariadne's Thread is NOT already installed,
|
||
|
|
; prompt with a Yes/No (default Yes) offering to also install the system-wide
|
||
|
|
; resolver. On Yes, chain-invoke the bundled AriadneResolver-Setup silently
|
||
|
|
; (its own UAC prompt fires because Inno Setup declares PrivilegesRequired=admin).
|
||
|
|
;
|
||
|
|
; During uninstall: if Ariadne's Thread IS installed, prompt with a Yes/No
|
||
|
|
; (default Yes) offering to also uninstall it. On Yes, run its uninstaller
|
||
|
|
; silently via the UninstallString we read from its Inno registry entry.
|
||
|
|
;
|
||
|
|
; Registry lookup: Inno Setup 6 registers per-machine 64-bit installs (which
|
||
|
|
; Ariadne is — ArchitecturesInstallIn64BitMode=x64compatible) under the
|
||
|
|
; 64-bit view of HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\
|
||
|
|
; with the AppId + "_is1" suffix. Ariadne's AppId is fixed at
|
||
|
|
; {7E7A5F1C-3B4E-4C8A-9E1D-ARIADNERSLVR}.
|
||
|
|
;
|
||
|
|
; Silent flags used on the Ariadne installer:
|
||
|
|
; /VERYSILENT no wizard UI (progress bar only via ExecWait blocking)
|
||
|
|
; /SUPPRESSMSGBOXES suppresses all message boxes the Inno script might raise
|
||
|
|
; /NORESTART never auto-reboot
|
||
|
|
;
|
||
|
|
; If the user cancels the Ariadne UAC prompt, ExecWait still returns cleanly
|
||
|
|
; and Theseus install continues — Ariadne install is best-effort. The user
|
||
|
|
; can always install it later from silentmode.st/tools.
|
||
|
|
|
||
|
|
!define ARIADNE_INSTALLER "AriadneResolver-Setup-0.1.0.exe"
|
||
|
|
!define ARIADNE_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\{7E7A5F1C-3B4E-4C8A-9E1D-ARIADNERSLVR}_is1"
|
||
|
|
|
||
|
|
!macro customInstall
|
||
|
|
; Skip the prompt if Ariadne is already installed — no point asking on upgrades.
|
||
|
|
SetRegView 64
|
||
|
|
ReadRegStr $R0 HKLM "${ARIADNE_UNINST_KEY}" "UninstallString"
|
||
|
|
SetRegView lastused
|
||
|
|
StrCmp $R0 "" ariadne_ask ariadne_skip_install
|
||
|
|
|
||
|
|
ariadne_ask:
|
||
|
|
MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON1 \
|
||
|
|
"Install Ariadne's Thread now?$\r$\n$\r$\nAriadne's Thread is a small system-wide resolver that lets Bitcoin Cash names (.bch, .x, ...) work in Chrome, Edge, Firefox, and every other browser on this machine.$\r$\n$\r$\nRecommended. It runs a UAC prompt of its own." \
|
||
|
|
IDNO ariadne_skip_install
|
||
|
|
; extraResources are unpacked under $INSTDIR/resources.
|
||
|
|
ExecWait '"$INSTDIR\resources\${ARIADNE_INSTALLER}" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART'
|
||
|
|
|
||
|
|
ariadne_skip_install:
|
||
|
|
!macroend
|
||
|
|
|
||
|
|
!macro customUnInstall
|
||
|
|
; Only offer to remove Ariadne if it's actually installed.
|
||
|
|
SetRegView 64
|
||
|
|
ReadRegStr $R0 HKLM "${ARIADNE_UNINST_KEY}" "UninstallString"
|
||
|
|
SetRegView lastused
|
||
|
|
StrCmp $R0 "" ariadne_skip_uninstall
|
||
|
|
|
||
|
|
MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON1 \
|
||
|
|
"Also uninstall Ariadne's Thread?$\r$\n$\r$\nRemoving it makes Bitcoin Cash names stop resolving in Chrome, Edge, Firefox, and every other browser on this machine. (Theseus's own uninstall does not depend on this — say No to keep the system-wide resolver.)" \
|
||
|
|
IDNO ariadne_skip_uninstall
|
||
|
|
ExecWait '$R0 /VERYSILENT /SUPPRESSMSGBOXES /NORESTART'
|
||
|
|
|
||
|
|
ariadne_skip_uninstall:
|
||
|
|
!macroend
|