URI: 
       telectrum.nsi - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
       telectrum.nsi (7342B)
       ---
            1 ;--------------------------------
            2 ;Include Modern UI
            3   !include "TextFunc.nsh" ;Needed for the $GetSize function. I know, doesn't sound logical, it isn't.
            4   !include "MUI2.nsh"
            5   
            6 ;--------------------------------
            7 ;Variables
            8 
            9   !define PRODUCT_NAME "Electrum"
           10   !define PRODUCT_WEB_SITE "https://github.com/spesmilo/electrum"
           11   !define PRODUCT_PUBLISHER "Electrum Technologies GmbH"
           12   !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
           13 
           14 ;--------------------------------
           15 ;General
           16 
           17   ;Name and file
           18   Name "${PRODUCT_NAME}"
           19   OutFile "dist/electrum-setup.exe"
           20 
           21   ;Default installation folder
           22   InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"
           23 
           24   ;Get installation folder from registry if available
           25   InstallDirRegKey HKCU "Software\${PRODUCT_NAME}" ""
           26 
           27   ;Request application privileges for Windows Vista
           28   RequestExecutionLevel admin
           29 
           30   ;Specifies whether or not the installer will perform a CRC on itself before allowing an install
           31   CRCCheck on
           32   
           33   ;Sets whether or not the details of the install are shown. Can be 'hide' (the default) to hide the details by default, allowing the user to view them, or 'show' to show them by default, or 'nevershow', to prevent the user from ever seeing them.
           34   ShowInstDetails show
           35   
           36   ;Sets whether or not the details of the uninstall  are shown. Can be 'hide' (the default) to hide the details by default, allowing the user to view them, or 'show' to show them by default, or 'nevershow', to prevent the user from ever seeing them.
           37   ShowUninstDetails show
           38   
           39   ;Sets the colors to use for the install info screen (the default is 00FF00 000000. Use the form RRGGBB (in hexadecimal, as in HTML, only minus the leading '#', since # can be used for comments). Note that if "/windows" is specified as the only parameter, the default windows colors will be used.
           40   InstallColors /windows
           41   
           42   ;This command sets the compression algorithm used to compress files/data in the installer. (http://nsis.sourceforge.net/Reference/SetCompressor)
           43   SetCompressor /SOLID lzma
           44   
           45   ;Sets the dictionary size in megabytes (MB) used by the LZMA compressor (default is 8 MB).
           46   SetCompressorDictSize 64
           47   
           48   ;Sets the text that is shown (by default it is 'Nullsoft Install System vX.XX') in the bottom of the install window. Setting this to an empty string ("") uses the default; to set the string to blank, use " " (a space).
           49   BrandingText "${PRODUCT_NAME} Installer v${PRODUCT_VERSION}" 
           50   
           51   ;Sets what the titlebars of the installer will display. By default, it is 'Name Setup', where Name is specified with the Name command. You can, however, override it with 'MyApp Installer' or whatever. If you specify an empty string (""), the default will be used (you can however specify " " to achieve a blank string)
           52   Caption "${PRODUCT_NAME}"
           53 
           54   ;Adds the Product Version on top of the Version Tab in the Properties of the file.
           55   VIProductVersion 1.0.0.0
           56   
           57   ;VIAddVersionKey - Adds a field in the Version Tab of the File Properties. This can either be a field provided by the system or a user defined field.
           58   VIAddVersionKey ProductName "${PRODUCT_NAME} Installer"
           59   VIAddVersionKey Comments "The installer for ${PRODUCT_NAME}"
           60   VIAddVersionKey CompanyName "${PRODUCT_NAME}"
           61   VIAddVersionKey LegalCopyright "2013-2018 ${PRODUCT_PUBLISHER}"
           62   VIAddVersionKey FileDescription "${PRODUCT_NAME} Installer"
           63   VIAddVersionKey FileVersion ${PRODUCT_VERSION}
           64   VIAddVersionKey ProductVersion ${PRODUCT_VERSION}
           65   VIAddVersionKey InternalName "${PRODUCT_NAME} Installer"
           66   VIAddVersionKey LegalTrademarks "${PRODUCT_NAME} is a trademark of ${PRODUCT_PUBLISHER}" 
           67   VIAddVersionKey OriginalFilename "${PRODUCT_NAME}.exe"
           68 
           69 ;--------------------------------
           70 ;Interface Settings
           71 
           72   !define MUI_ABORTWARNING
           73   !define MUI_ABORTWARNING_TEXT "Are you sure you wish to abort the installation of ${PRODUCT_NAME}?"
           74   
           75   !define MUI_ICON "c:\electrum\electrum\gui\icons\electrum.ico"
           76   
           77 ;--------------------------------
           78 ;Pages
           79 
           80   !insertmacro MUI_PAGE_DIRECTORY
           81   !insertmacro MUI_PAGE_INSTFILES
           82   !insertmacro MUI_UNPAGE_CONFIRM
           83   !insertmacro MUI_UNPAGE_INSTFILES
           84 
           85 ;--------------------------------
           86 ;Languages
           87 
           88   !insertmacro MUI_LANGUAGE "English"
           89 
           90 ;--------------------------------
           91 ;Installer Sections
           92 
           93 ;Check if we have Administrator rights
           94 Function .onInit
           95         UserInfo::GetAccountType
           96         pop $0
           97         ${If} $0 != "admin" ;Require admin rights on NT4+
           98                 MessageBox mb_iconstop "Administrator rights required!"
           99                 SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
          100                 Quit
          101         ${EndIf}
          102 FunctionEnd
          103 
          104 Section
          105   SetOutPath $INSTDIR
          106 
          107   ;Uninstall previous version files
          108   RMDir /r "$INSTDIR\*.*"
          109   Delete "$DESKTOP\${PRODUCT_NAME}.lnk"
          110   Delete "$SMPROGRAMS\${PRODUCT_NAME}\*.*"
          111   
          112   ;Files to pack into the installer
          113   File /r "dist\electrum\*.*"
          114   File "c:\electrum\electrum\gui\icons\electrum.ico"
          115 
          116   ;Store installation folder
          117   WriteRegStr HKCU "Software\${PRODUCT_NAME}" "" $INSTDIR
          118 
          119   ;Create uninstaller
          120   DetailPrint "Creating uninstaller..."
          121   WriteUninstaller "$INSTDIR\Uninstall.exe"
          122 
          123   ;Create desktop shortcut
          124   DetailPrint "Creating desktop shortcut..."
          125   CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\electrum-${PRODUCT_VERSION}.exe" ""
          126 
          127   ;Create start-menu items
          128   DetailPrint "Creating start-menu items..."
          129   CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
          130   CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0
          131   CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\electrum-${PRODUCT_VERSION}.exe" "" "$INSTDIR\electrum-${PRODUCT_VERSION}.exe" 0
          132   CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Testnet.lnk" "$INSTDIR\electrum-${PRODUCT_VERSION}.exe" "--testnet" "$INSTDIR\electrum-${PRODUCT_VERSION}.exe" 0
          133 
          134 
          135   ;Links bitcoin: URI's to Electrum
          136   WriteRegStr HKCU "Software\Classes\bitcoin" "" "URL:bitcoin Protocol"
          137   WriteRegStr HKCU "Software\Classes\bitcoin" "URL Protocol" ""
          138   WriteRegStr HKCU "Software\Classes\bitcoin" "DefaultIcon" "$\"$INSTDIR\electrum.ico, 0$\""
          139   WriteRegStr HKCU "Software\Classes\bitcoin\shell\open\command" "" "$\"$INSTDIR\electrum-${PRODUCT_VERSION}.exe$\" $\"%1$\""
          140 
          141   ;Adds an uninstaller possibility to Windows Uninstall or change a program section
          142   WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
          143   WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\Uninstall.exe"
          144   WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
          145   WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
          146   WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
          147   WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\electrum.ico"
          148 
          149   ;Fixes Windows broken size estimates
          150   ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
          151   IntFmt $0 "0x%08X" $0
          152   WriteRegDWORD HKCU "${PRODUCT_UNINST_KEY}" "EstimatedSize" "$0"
          153 SectionEnd
          154 
          155 ;--------------------------------
          156 ;Descriptions
          157 
          158 ;--------------------------------
          159 ;Uninstaller Section
          160 
          161 Section "Uninstall"
          162   RMDir /r "$INSTDIR\*.*"
          163 
          164   RMDir "$INSTDIR"
          165 
          166   Delete "$DESKTOP\${PRODUCT_NAME}.lnk"
          167   Delete "$SMPROGRAMS\${PRODUCT_NAME}\*.*"
          168   RMDir  "$SMPROGRAMS\${PRODUCT_NAME}"
          169   
          170   DeleteRegKey HKCU "Software\Classes\bitcoin"
          171   DeleteRegKey HKCU "Software\${PRODUCT_NAME}"
          172   DeleteRegKey HKCU "${PRODUCT_UNINST_KEY}"
          173 SectionEnd