annotate nsis/schikkers-list.nsi @ 6472:51635cbba4b0

schikkers-list.nsi: more desktop invocation tests.
author Jan Nieuwenhuizen <janneke@gnu.org>
date Wed, 02 Feb 2011 18:24:26 +0100
parents 9796761cf213
children 15a46d5d6f1b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6015
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
1 ;;;; schikkers-list.nsi -- Schikkers-List installer script for Microsoft Windows
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
2 ;;;; (c) 2005--2010
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
3 ;;;; Jan Nieuwenhuizen <janneke@gnu.org>
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
4 ;;;; Han-Wen Nienhuys <janneke@gnu.org>
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
5 ;;;; licence: GNU GPL
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
6
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
7 ;; For quick [wine] test runs
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
8 ;; !define TEST "1"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
9
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
10
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
11 ;;; substitutions
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
12
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
13 !define ENVIRON "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
14
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
15 !define UNINSTALL \
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
16 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRETTY_NAME}"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
17 !define USER_SHELL_FOLDERS \
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
18 "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
19
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
20 !define UninstLog "files.txt"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
21 Var UninstLog
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
22
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
23 ; Uninstall log file missing.
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
24 LangString UninstLogMissing ${LANG_ENGLISH} "${UninstLog} not found.$\r$\nCannot uninstall."
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
25
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
26 !include "substitute.nsh"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
27 ${StrLoc}
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
28 ${UnStrLoc}
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
29
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
30 ;;SetCompressor lzma ; very slow
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
31 ;;SetCompressor zlib
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
32 SetCompressor bzip2 ;;
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
33
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
34 Name "${PRETTY_NAME}"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
35
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
36 Caption "${PRETTY_NAME} ${INSTALLER_VERSION} for Microsoft Windows"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
37 BrandingText "${PRETTY_NAME} installer v1.0"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
38
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
39
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
40 InstallDir $PROGRAMFILES\${PRETTY_NAME}
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
41 InstallDirRegKey HKLM "Software\${PRETTY_NAME}" "Install_Dir"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
42
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
43 CRCCheck on
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
44 XPStyle on
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
45 InstallColors /windows
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
46
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
47 BGGradient 000000 E8FFE8 FFFFFF
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
48
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
49 ;; Use Finish iso Close for the [close button text]
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
50 ;; Although nothing happens after Close, experienced Windows users feel
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
51 ;; much more with "Finish" than with Close.
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
52 MiscButtonText Back Next Cancel Finish
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
53
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
54 LicenseText "Conditions for redistributing ${PRETTY_NAME}" "Next"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
55 LicenseData "${ROOT}\license\${NAME}"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
56 LicenseForceSelection off
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
57
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
58 Page license
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
59
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
60 ;; FIXME: the installer will crash on File /r commands if Page
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
61 ;; directory is not used.
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
62 Page directory
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
63
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
64 Page components
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
65
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
66 ;; Put a note to look at the Help page of the website on the
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
67 ;; window when the install is completed
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
68 CompletedText "Install completed. Please see $INSTDIR\usr\bin\${CANARY_EXE}."
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
69 Page instfiles
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
70
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
71 UninstPage uninstConfirm
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
72 UninstPage instfiles
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
73
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
74 Section "${PRETTY_NAME} (required)"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
75 ;; always generate install log
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
76 Logset on
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
77
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
78 silent:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
79 IfFileExists $INSTDIR\usr\bin\${CANARY_EXE}.exe no_overwrite_error fresh_install
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
80 no_overwrite_error:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
81 MessageBox MB_OK "Previous version of ${PRETTY_NAME} found$\r$\nUninstall the old version first."
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
82 Abort "Previous version of ${PRETTY_NAME} found$\r$\nUninstall the old version first."
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
83
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
84 fresh_install:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
85 SetOverwrite on
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
86 AllowSkipFiles on
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
87 SetOutPath $INSTDIR
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
88
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
89 File /r "${ROOT}\usr"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
90 File /r "${ROOT}\license"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
91 File /r "${ROOT}\files.txt"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
92
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
93 WriteUninstaller "uninstall.exe"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
94 CreateDirectory "$INSTDIR\usr\bin"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
95
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
96 Call registry_installer
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
97 Call registry_path
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
98 SectionEnd
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
99
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
100 Function registry_path
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
101 ReadRegStr $R0 HKLM "${ENVIRON}" "PATH"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
102 WriteRegExpandStr HKLM "${ENVIRON}" "PATH" "$R0;$INSTDIR\usr\bin"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
103 FunctionEnd
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
104
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
105 ;; copy & paste from the NSIS code examples
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
106 Function un.install_installed_files
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
107 IfFileExists "$INSTDIR\${UninstLog}" +3
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
108 MessageBox MB_OK|MB_ICONSTOP "$(UninstLogMissing)"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
109 Abort
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
110
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
111 Push $R0
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
112 Push $R1
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
113 Push $R2
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
114 SetFileAttributes "$INSTDIR\${UninstLog}" NORMAL
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
115 FileOpen $UninstLog "$INSTDIR\${UninstLog}" r
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
116 StrCpy $R1 -1
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
117
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
118 GetLineCount:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
119 ClearErrors
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
120 FileRead $UninstLog $R0
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
121 IntOp $R1 $R1 + 1
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
122 StrCpy $R0 "$INSTDIR\$R0" -2
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
123 Push $R0
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
124 IfErrors 0 GetLineCount
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
125
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
126 Pop $R0
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
127
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
128 LoopRead:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
129 StrCmp $R1 0 LoopDone
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
130 Pop $R0
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
131
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
132 IfFileExists "$R0\*.*" 0 +3
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
133 RMDir $R0 #is dir
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
134 Goto +3
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
135 IfFileExists "$R0" 0 +2
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
136 Delete "$R0" #is file
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
137
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
138 IntOp $R1 $R1 - 1
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
139 Goto LoopRead
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
140 LoopDone:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
141 FileClose $UninstLog
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
142
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
143 Pop $R2
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
144 Pop $R1
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
145 Pop $R0
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
146
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
147 FunctionEnd
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
148 ;; end copy & paste
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
149
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
150 ;; Optional section (can be disabled by the user)
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
151 Section "Start Menu Shortcuts"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
152 ;; First install for all users, if anything fails, install
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
153 ;; for current user only.
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
154 ClearErrors
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
155
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
156 ;; The OutPath specifies the CWD of the command. For desktop
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
157 ;; shortcuts, set to a string that expands to the desktop folder
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
158 ;; of the user who runs LilyPond.
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
159 ReadRegStr $R0 HKCU "${USER_SHELL_FOLDERS}" "Desktop"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
160 SetOutPath '"$R0"'
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
161 SetShellVarContext all
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
162
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
163 ;; Working directory: %USERPROFILE%\<locale's-desktop-folder-name>,
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
164 ;; but that string is not expanded.
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
165
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
166 ;; Let's see what happens when outputting to the shared desktop.
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
167 ;; Let's not--
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
168 ;; Goto current_user
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
169
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
170 SetOutPath "$DESKTOP"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
171 Call create_shortcuts
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
172
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
173 ;; That also did not work, often the other users do no write access
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
174 ;; there.
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
175
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
176 ;; If no write access for all, delete common stuff and opt for
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
177 ;; install for current user only.
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
178 IfErrors 0 exit
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
179 Delete "$DESKTOP\Schikkers-List.lnk"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
180 Delete "$SMPROGRAMS\Schikkers-List\*.*"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
181 RMDir "$SMPROGRAMS\Schikkers-List"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
182
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
183 ;; $DESKTOP should expand to the same location as the outpath above,
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
184 ;; but nsis may handle anomalies better.
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
185
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
186 current_user:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
187 SetShellVarContext current
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
188 SetOutPath "$DESKTOP"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
189 Call create_shortcuts
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
190
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
191 exit:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
192 SetShellVarContext current
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
193 SetOutPath $INSTDIR
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
194 SectionEnd
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
195
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
196 ;; Optional section (can be disabled by the user)
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
197 Section "Bundled Python"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
198 ;; Only make bundled python interpreter the default
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
199 ;; if user wants it to be (i.e. for the average windows
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
200 ;; user who only cares that software works just like that)
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
201 Call registry_python
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
202 SectionEnd
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
203
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
204 ;; Optional section (can be disabled by the user)
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
205 Section "Bundled Guile"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
206 ;; Only make bundled guile interpreter the default
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
207 ;; if user wants it to be (i.e. for the average windows
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
208 ;; user who only cares that software works just like that)
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
209 Call registry_guile
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
210 SectionEnd
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
211
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
212 Section "Uninstall"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
213 ifSilent 0 silent
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
214 Logset on
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
215
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
216 silent:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
217 DeleteRegKey HKLM SOFTWARE\${PRETTY_NAME}
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
218 DeleteRegKey HKLM "${UNINSTALL}"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
219
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
220 DeleteRegKey HKCR "${PRETTY_NAME}" ""
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
221
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
222
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
223 ReadRegStr $R0 HKLM "${ENVIRON}" "PATH"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
224 ${UnStrLoc} $0 $R0 "$INSTDIR\usr\bin;" >
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
225
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
226 path_loop:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
227 StrCmp $0 "" path_done
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
228 StrLen $1 "$INSTDIR\usr\bin;"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
229 IntOp $2 $0 + $1
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
230 StrCpy $3 $R0 $0 0
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
231 StrCpy $4 $R0 10000 $2
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
232 WriteRegExpandStr HKLM "${ENVIRON}" "PATH" "$3$4"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
233 ReadRegStr $R0 HKLM "${ENVIRON}" "PATH"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
234 ${UnStrLoc} $0 $R0 "$INSTDIR\usr\bin;" >
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
235 StrCmp $0 "" path_done path_loop
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
236
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
237 path_done:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
238 call un.install_installed_files
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
239
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
240 ;; Remove shortcuts, if any
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
241 SetShellVarContext all
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
242 Delete "$SMPROGRAMS\${PRETTY_NAME}\*.*"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
243 Delete "$DESKTOP\${PRETTY_NAME}.lnk"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
244 RMDir "$SMPROGRAMS\${PRETTY_NAME}"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
245
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
246 SetShellVarContext current
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
247 Delete "$SMPROGRAMS\${PRETTY_NAME}\*.*"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
248 Delete "$DESKTOP\${PRETTY_NAME}.lnk"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
249 RMDir "$SMPROGRAMS\${PRETTY_NAME}"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
250
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
251 ;; Remove directories used
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
252 RMDir "$SMPROGRAMS\${PRETTY_NAME}"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
253 RMDir "$INSTDIR\usr\bin"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
254 RMDir "$INSTDIR\usr\"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
255 Delete "$INSTDIR\uninstall.exe"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
256 Delete "$INSTDIR\files.txt"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
257
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
258 RMDir "$INSTDIR"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
259 SectionEnd
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
260
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
261 Function registry_installer
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
262 WriteRegStr HKLM "SOFTWARE\${PRETTY_NAME}" "Install_Dir" "$INSTDIR"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
263 WriteRegStr HKLM "${UNINSTALL}" "DisplayName" "${PRETTY_NAME}"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
264 WriteRegStr HKLM "${UNINSTALL}" "UninstallString" '"$INSTDIR\uninstall.exe"'
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
265 WriteRegDWORD HKLM "${UNINSTALL}" "NoModify" 1
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
266 WriteRegDWORD HKLM "${UNINSTALL}" "NoRepair" 1
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
267 FunctionEnd
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
268
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
269 Function create_shortcuts
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
270 ;; Start menu
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
271 CreateDirectory "$SMPROGRAMS\Schikkers-List"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
272 CreateShortCut "$SMPROGRAMS\Schikkers-List\Schikkers-List.lnk" \
6462
9796761cf213 mingw::schikkers-list.nsi: make runnable, at last.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6015
diff changeset
273 "$INSTDIR\usr\bin\schikkers-list.scm" ""\
9796761cf213 mingw::schikkers-list.nsi: make runnable, at last.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6015
diff changeset
274 "$INSTDIR\usr\share\guile\site\ikli\images\ikli.ico" 0 SW_SHOWNORMAL
6472
51635cbba4b0 schikkers-list.nsi: more desktop invocation tests.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6462
diff changeset
275 CreateShortCut "$SMPROGRAMS\Schikkers-List\Schikkers-List-NOQUOTE.lnk" \
51635cbba4b0 schikkers-list.nsi: more desktop invocation tests.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6462
diff changeset
276 $INSTDIR\usr\bin\schikkers-list.scm ""\
51635cbba4b0 schikkers-list.nsi: more desktop invocation tests.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6462
diff changeset
277 "$INSTDIR\usr\share\guile\site\ikli\images\ikli.ico" 0 SW_SHOWNORMAL
6015
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
278 CreateShortCut "$SMPROGRAMS\Schikkers-List\Schikkers-List Website.lnk" \
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
279 "http://schikkers-list.org/" "" \
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
280 "firefox.exe" 0
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
281 CreateShortCut "$SMPROGRAMS\Schikkers-List\Uninstall.lnk" \
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
282 "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
283
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
284 ;; Desktop
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
285 ClearErrors
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
286
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
287 ;; Desktop link always on current user's desktop
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
288 SetShellVarContext current
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
289 SetOutPath "$DESKTOP"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
290
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
291 ReadRegStr $R0 HKLM \
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
292 "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
293 CreateShortCut "$DESKTOP\Schikkers-List.lnk" \
6462
9796761cf213 mingw::schikkers-list.nsi: make runnable, at last.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6015
diff changeset
294 "$INSTDIR\usr\bin\schikkers-list.scm" ""\
9796761cf213 mingw::schikkers-list.nsi: make runnable, at last.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6015
diff changeset
295 "$INSTDIR\usr\share\guile\site\ikli\images\ikli.ico" 0 SW_SHOWNORMAL
6472
51635cbba4b0 schikkers-list.nsi: more desktop invocation tests.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6462
diff changeset
296 CreateShortCut "$DESKTOP\Schikkers-List-NOQUOTE.lnk" \
51635cbba4b0 schikkers-list.nsi: more desktop invocation tests.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6462
diff changeset
297 $INSTDIR\usr\bin\schikkers-list.scm ""\
51635cbba4b0 schikkers-list.nsi: more desktop invocation tests.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6462
diff changeset
298 "$INSTDIR\usr\share\guile\site\ikli\images\ikli.ico" 0 SW_SHOWNORMAL
6015
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
299 FunctionEnd
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
300
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
301 Function registry_python
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
302 ReadRegStr $R0 HKLM "${ENVIRON}" "PATHEXT"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
303 ${StrLoc} $0 $R0 ".PY;" >
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
304 StrCmp $0 "" 0 py_done
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
305 WriteRegStr HKLM "${ENVIRON}" "PATHEXT" ".PY;$R0"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
306
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
307 py_done:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
308 WriteRegStr HKCR ".py" "" "Python"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
309 WriteRegStr HKCR ".py" "Python" "Python"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
310 WriteRegStr HKCR ".py" "Content Type" "text/x-python"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
311
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
312 ;;py_open:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
313 ReadRegStr $R0 HKCR "Python\shell\open\command" ""
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
314 ;;StrCmp $R0 "" 0 py_auto_file
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
315 WriteRegStr HKCR "Python\shell" "" "open"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
316 # %1 is the PYTHON command, so must be quoted bo the space
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
317 WriteRegExpandStr HKCR "Python\shell\open\command" "" '"$INSTDIR\usr\bin\python-windows.exe" "%1" %2 %3 %4 %5 %6 %7 %8 %9'
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
318
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
319 ;;py_auto_file:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
320 ReadRegStr $R0 HKCR "py_auto_file\shell\open\command" ""
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
321 ;;StrCmp $R0 "" 0 py_end
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
322 WriteRegStr HKCR "py_auto_file\shell" "" "open"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
323 # %1 is the PYTHON command, so must be quoted bo the space
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
324 WriteRegExpandStr HKCR "py_auto_file\shell\open\command" "" '"$INSTDIR\usr\bin\python-windows.exe" "%1" %2 %3 %4 %5 %6 %7 %8 %9'
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
325 ;;py_end:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
326 FunctionEnd
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
327
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
328 Function registry_guile
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
329 ReadRegStr $R0 HKLM "${ENVIRON}" "PATHEXT"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
330 ${StrLoc} $0 $R0 ".SCM;" >
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
331 StrCmp $0 "" 0 scm_done
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
332 WriteRegStr HKLM "${ENVIRON}" "PATHEXT" ".SCM;$R0"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
333
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
334 scm_done:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
335 WriteRegStr HKCR ".scm" "" "Guile"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
336 WriteRegStr HKCR ".scm" "Guile" "Guile"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
337 WriteRegStr HKCR ".scm" "Content Type" "text/x-guile"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
338
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
339 ;;scm_open:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
340 ReadRegStr $R0 HKCR "Guile\shell\open\command" ""
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
341 ;;StrCmp $R0 "" 0 scm_auto_file
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
342 WriteRegStr HKCR "Guile\shell" "" "open"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
343 # %1 is the GUILE command, so must be quoted bo the space
6472
51635cbba4b0 schikkers-list.nsi: more desktop invocation tests.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6462
diff changeset
344 ;; WriteRegExpandStr HKCR "Guile\shell\open\command" "" '"$INSTDIR\usr\bin\guile-windows.exe" "%1" %2 %3 %4 %5 %6 %7 %8 %9'
51635cbba4b0 schikkers-list.nsi: more desktop invocation tests.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6462
diff changeset
345 WriteRegExpandStr HKCR "Guile\shell\open\command" "" '"$INSTDIR\usr\bin\guile-windows.exe" %1 %2 %3 %4 %5 %6 %7 %8 %9'
6015
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
346
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
347 ;;scm_auto_file:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
348 ReadRegStr $R0 HKCR "scm_auto_file\shell\open\command" ""
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
349 ;;StrCmp $R0 "" 0 scm_end
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
350 WriteRegStr HKCR "scm_auto_file\shell" "" "open"
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
351 # %1 is the GUILE command, so must be quoted bo the space
6472
51635cbba4b0 schikkers-list.nsi: more desktop invocation tests.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6462
diff changeset
352 ;; WriteRegExpandStr HKCR "scm_auto_file\shell\open\command" "" '"$INSTDIR\usr\bin\guile-windows.exe" "%1" %2 %3 %4 %5 %6 %7 %8 %9'
51635cbba4b0 schikkers-list.nsi: more desktop invocation tests.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6462
diff changeset
353 WriteRegExpandStr HKCR "scm_auto_file\shell\open\command" "" '"$INSTDIR\usr\bin\guile-windows.exe" %1 %2 %3 %4 %5 %6 %7 %8 %9'
6015
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
354 ;;scm_end:
cc908a87aaa4 schikkers-list: new package.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
355 FunctionEnd