; 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