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