Setup b8cc85ec0f70844e4ce14a70b0ff89b9d9720be2f0e5568e56c51ecef706b14d Portable 6540b4c67906046cd2c5303a9ccaa4e00a39b3daa5792b71e16c4f141f498220 Copy-only change to the installer's Ariadne page: names the mechanism BCDN — Bitcoin Cash Domain Names — in the body text instead of listing example TLDs. Reads more clearly to a first-time visitor who might not know that ".bch" and ".x" are the same registry. Everything else from 0.1.1 rides along: dedicated wizard-page checkbox for Ariadne's Thread (pre-checked, skipped on upgrades), uninstall symmetry, Startpage POST-form fix. Deployed: scp installers + manifest + site pages to VPS, sia-upload of both trees, verified 200 + manifest 0.1.2 2026-08-31.
90 lines
3.6 KiB
NSIS
90 lines
3.6 KiB
NSIS
; Theseus Navigator NSIS include — bundles Ariadne's Thread as an opt-out.
|
|
;
|
|
; UI: a dedicated wizard page with a real checkbox (pre-checked) instead of a
|
|
; MessageBox popup. Shown FIRST in the install flow because electron-builder's
|
|
; template places our `!include` before its own MUI_PAGE_* inserts and NSIS
|
|
; processes page directives in file order — so this is the earliest hook
|
|
; we have without editing the template. Framed as "Options" so it reads
|
|
; naturally as a preamble before the standard Welcome/License/Directory pages.
|
|
; Skipped entirely (`Abort`) if Ariadne's Thread is already installed, so
|
|
; upgrades of Theseus don't nag.
|
|
;
|
|
; The uninstall side stays a symmetric MessageBox (a full custom uninstaller
|
|
; page is overkill for one yes/no during a rare event).
|
|
|
|
!include "nsDialogs.nsh"
|
|
!include "LogicLib.nsh"
|
|
!include "MUI2.nsh"
|
|
|
|
Var AriadneCheckbox
|
|
Var InstallAriadneFlag
|
|
|
|
!define ARIADNE_INSTALLER "AriadneResolver-Setup-0.1.0.exe"
|
|
!define ARIADNE_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\{7E7A5F1C-3B4E-4C8A-9E1D-ARIADNERSLVR}_is1"
|
|
|
|
Page custom AriadnePageCreate AriadnePageLeave
|
|
|
|
Function AriadnePageCreate
|
|
; Skip the page entirely if Ariadne's Thread is already on this machine —
|
|
; nothing to offer. Registry lookup uses HKLM 64-bit view because Ariadne's
|
|
; Inno script sets ArchitecturesInstallIn64BitMode=x64compatible.
|
|
SetRegView 64
|
|
ReadRegStr $R0 HKLM "${ARIADNE_UNINST_KEY}" "UninstallString"
|
|
SetRegView lastused
|
|
StrCmp $R0 "" ariadne_page_show 0
|
|
StrCpy $InstallAriadneFlag "0"
|
|
Abort
|
|
|
|
ariadne_page_show:
|
|
!insertmacro MUI_HEADER_TEXT "Optional add-ons" "Choose whether to also install Ariadne's Thread alongside Theseus Navigator."
|
|
|
|
nsDialogs::Create 1018
|
|
Pop $0
|
|
StrCmp $0 "error" ariadne_page_bail 0
|
|
|
|
${NSD_CreateLabel} 0 0 100% 44u "Ariadne's Thread is a small system-wide resolver that lets BCDN — Bitcoin Cash Domain Names — work in Chrome, Edge, Firefox, and every other browser on this machine.$\r$\n$\r$\nWithout it, only Theseus resolves these names. You can install or remove it later."
|
|
Pop $0
|
|
|
|
${NSD_CreateCheckbox} 0 60u 100% 12u "Install Ariadne's Thread (recommended)"
|
|
Pop $AriadneCheckbox
|
|
${NSD_Check} $AriadneCheckbox
|
|
|
|
${NSD_CreateLabel} 0 80u 100% 20u "It runs a UAC (admin) prompt of its own during install. Theseus Navigator's own setup continues after this page."
|
|
Pop $0
|
|
|
|
nsDialogs::Show
|
|
Return
|
|
|
|
ariadne_page_bail:
|
|
StrCpy $InstallAriadneFlag "0"
|
|
Abort
|
|
FunctionEnd
|
|
|
|
Function AriadnePageLeave
|
|
${NSD_GetState} $AriadneCheckbox $InstallAriadneFlag
|
|
FunctionEnd
|
|
|
|
!macro customInstall
|
|
; Read the state saved from AriadnePageLeave. BST_CHECKED == 1.
|
|
${If} $InstallAriadneFlag == ${BST_CHECKED}
|
|
; Ariadne's Inno installer runs its own UAC prompt (PrivilegesRequired=admin).
|
|
; ExecWait blocks until Ariadne finishes or the user cancels UAC; either
|
|
; way, Theseus install continues normally afterwards.
|
|
ExecWait '"$INSTDIR\resources\${ARIADNE_INSTALLER}" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART'
|
|
${EndIf}
|
|
!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
|