/[cvs]/joko/ToolBox/Windows/VpnDial-installer/vpn.nsi
ViewVC logotype

Diff of /joko/ToolBox/Windows/VpnDial-installer/vpn.nsi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by joko, Fri Nov 18 19:44:44 2005 UTC revision 1.6 by janosch, Tue Nov 22 15:50:55 2005 UTC
# Line 1  Line 1 
1  ; VpnDial.nsi  ; VpnDial.nsi
2  ; $Id$  ; $Id$
3  ;  ;
4  ; This script can install VpnDial,  ; This script can install VpnDial,
5  ; has uninstall support and (optionally) installs start menu shortcuts.  ; has uninstall support and (optionally) installs start menu shortcuts.
6  ;  ;
7    
8  !include "connection.nsi"  !include "MUI.nsh"
9  !include "vpn_functions.nsi"  !include "variables-decleration.nsi"
10    !include "file_functions.nsi"
11    
12  ; --------------------------------  
13  ;   The name of the installer  ; --------------------------------
14  ; --------------------------------  ;   The name of the installer
15  Name "VpnDial"  ; --------------------------------
16    Name "VpnDial"
17  ; The file to write  
18  OutFile "VpnDial-Setup.exe"  ; The file to write
19    OutFile "VpnDial-Setup.exe"
20  ; The default installation directory  
21  InstallDir $PROGRAMFILES\NetFragOrg\VpnDial  ; The default installation directory
22    InstallDir $PROGRAMFILES\NetFragOrg\VpnDial
23  ; Registry key to check for directory (so if you install again, it will  
24  ; overwrite the old one automatically)  ; Registry key to check for directory (so if you install again, it will
25  InstallDirRegKey HKLM "Software\NSIS_VpnDial" "Install_Dir"  ; overwrite the old one automatically)
26    InstallDirRegKey HKLM "Software\NSIS_VpnDial" "Install_Dir"
27  ; more options: language of the installer & installer style  
28  LoadLanguageFile "${NSISDIR}\Contrib\Language files\German.nlf"  SetOverwrite on
29  XPStyle on  
30    
31    ; --------------------------------
32  ; --------------------------------  ; (MUI) Interface Settings
33  ;   Pages  ; --------------------------------
34  ; --------------------------------  !define MUI_ABORTWARNING
35    !define MUI_COMPONENTSPAGE_NODESC
36  Page components  !define MUI_ICON "key.ico"
37  Page directory  !define MUI_UNICON "key.ico"
38  Page instfiles  
39    
40  UninstPage uninstConfirm  ; --------------------------------
41  UninstPage instfiles  ;   Pages
42    ; --------------------------------
43  ; --------------------------------  
44  ;   The stuff to install  UninstPage uninstConfirm
45  ; --------------------------------  UninstPage instfiles
46    
47  Section  !insertmacro MUI_PAGE_WELCOME
48    SetShellVarContext all  Page custom SetupPage1
49    Push $APPDATA\Microsoft\Network\Connections\Pbk\rasphone.pbk  Page custom SetupPage2
50    Push "[$connectionname]"  Page custom SetupPage3
51     Call FileSearch  !insertmacro MUI_PAGE_COMPONENTS
52    Pop $0 #Number of times found throughout  !insertmacro MUI_PAGE_DIRECTORY
53    Pop $1 #Found at all? yes/no  !insertmacro MUI_PAGE_INSTFILES
54    Pop $2 #Number of lines found in  
55    StrCmp $1 yes 0 +3  !insertmacro MUI_UNPAGE_CONFIRM
56    MessageBox MB_OK "$\"[$connectionname]$\" was found already found. Cannot create. Sorry."  !insertmacro MUI_UNPAGE_INSTFILES
57    Abort  !insertmacro MUI_LANGUAGE "German"
58  SectionEnd  
59    
60  Section "VpnDial" IDX_VpnDial  ; --------------------------------
61    ; .onInit
62    SetDetailsPrint both  ; --------------------------------
63    DetailPrint "Installiere VpnDial..."  
64    Function .onInit
65    ;SectionIn RO  
66        System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'
67    ; Set output path to the installation directory.    Pop $R0
68    SetOutPath $INSTDIR    StrCmp $R0 0 +3
69        MessageBox MB_OK|MB_ICONEXCLAMATION "Die Installation läuft bereits."
70    ;CreateDirectory $INSTDIR\certs\      Abort
71    
72    ; Put file there    !insertmacro MUI_INSTALLOPTIONS_EXTRACT "vpndial_settings.ini"
73    ;File /r "C:\IPSec\nsis\vpndial\*.*"    !insertmacro MUI_INSTALLOPTIONS_EXTRACT "vpndial_settings_net.ini"  
74    File /r "vpndial\*.*"    !insertmacro MUI_INSTALLOPTIONS_EXTRACT "vpndial_settings_cert.ini"
75    ;File "C:\IPSec\nsis\vpndial\certs\"  FunctionEnd
76    ;File "C:\IPSec\nsis\vpndial\certs\*.*"  
77      Function SetupPage1
78    ; Write the installation path into the registry    ; custom page
79    WriteRegStr HKLM Software\NSIS_VpnDial "Install_Dir" "$INSTDIR"    ; see: http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html#customPages
80        ; and: http://nsis.sourceforge.net/Docs/InstallOptions/Readme.html
81    ; Write the uninstall keys for Windows    !insertmacro MUI_HEADER_TEXT "VpnDial Einstellungen" "Bitte füllen Sie folgende Angaben aus"
82    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VpnDial" "DisplayName" "VpnDial"    !insertmacro MUI_INSTALLOPTIONS_DISPLAY "vpndial_settings.ini"  
83    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VpnDial" "UninstallString" '"$INSTDIR\uninstall.exe"'  FunctionEnd
84    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VpnDial" "NoModify" 1  
85    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VpnDial" "NoRepair" 1  Function SetupPage2
86    WriteUninstaller "uninstall.exe"    !insertmacro MUI_HEADER_TEXT "VpnDial Einstellungen" "Bitte füllen Sie folgende Angaben aus"
87      !insertmacro MUI_INSTALLOPTIONS_DISPLAY "vpndial_settings_net.ini"
88  SectionEnd  FunctionEnd
89    
90  Section  Function SetupPage3
91    DetailPrint "Installiere VPN-Verbindung..."    !insertmacro MUI_HEADER_TEXT "VpnDial Einstellungen" "Bitte füllen Sie folgende Angaben aus"
92    Push "[##connectionname##]"            #-- text to be replaced  within the " "    !insertmacro MUI_INSTALLOPTIONS_DISPLAY "vpndial_settings_cert.ini"
93    Push "[$connectionname]"             #-- replace with anything within the " "  FunctionEnd
94    Push all                      #-- replace all occurrences  
95    Push all                      #-- replace all occurrences  
96    Push "$INSTDIR\pbk\connection.pbk"      #-- file to replace in  ; --------------------------------
97    Call AdvReplaceInFile         #-- Call the Function  ;   The stuff to install
98  SectionEnd  ; --------------------------------
99    
100  Section  Section
101    Push "PhoneNumber=##destinationhost##"            #-- text to be replaced  within the " "      
102    Push "PhoneNumber=$destination_host"             #-- replace with anything within the " "      ;Get Parameter from vpndial_settings.ini
103    Push all                      #-- replace all occurrences      
104    Push all                      #-- replace all occurrences      ;Get Connectionname  
105    Push "$INSTDIR\pbk\connection.pbk"      #-- file to replace in      !insertmacro MUI_INSTALLOPTIONS_READ $connectionname "vpndial_settings.ini" "Field 2" "State"
106    Call AdvReplaceInFile         #-- Call the Function      ;MessageBox MB_OK $R1
107  SectionEnd      ;StrCpy $connectionname $R1
108    
109  Section      ;Get Destination_host
110    SetShellVarContext all      !insertmacro MUI_INSTALLOPTIONS_READ $destination_host "vpndial_settings.ini" "Field 3" "State"
111      Push $INSTDIR\pbk\rasphone.pbk      ;MessageBox MB_OK $R2
112      Push $APPDATA\Microsoft\Network\Connections\Pbk\rasphone.pbk      ;StrCpy $destination_host $R2
113      Push $INSTDIR\pbk\connection.pbk  
114      Call JoinFiles              ;Get Username
115      CopyFiles $APPDATA\Microsoft\Network\Connections\Pbk\rasphone.pbk $INSTDIR\pbk\rasphone_orig.pbk      !insertmacro MUI_INSTALLOPTIONS_READ $username "vpndial_settings.ini" "Field 4" "State"
116      CopyFiles $INSTDIR\pbk\rasphone.pbk $APPDATA\Microsoft\Network\Connections\Pbk\rasphone.pbk  
117    SetShellVarContext current      ;Get Password
118  SectionEnd      !insertmacro MUI_INSTALLOPTIONS_READ $userpass "vpndial_settings.ini" "Field 8" "State"
119    
120  Section      ;-------------------------------------------------------------------------------------------------------------
121  nsExec::Exec "$INSTDIR\bin\VpnDial.exe --setup $connectionname --user $username --pass $userpass"  
122  SectionEnd      ;Get Parameter from vpndial_settings_net.ini
123        
124  Section      ;Get Destination_net
125  nsExec::Exec "$INSTDIR\bin\certmgr.exe -add -c $INSTDIR\certs\$cacert -s -r localMachine root"      !insertmacro MUI_INSTALLOPTIONS_READ $R1 "vpndial_settings_net.ini" "Field 2" "State"
126  SectionEnd      !insertmacro MUI_INSTALLOPTIONS_READ $R2 "vpndial_settings_net.ini" "Field 3" "State"  
127        !insertmacro MUI_INSTALLOPTIONS_READ $R3 "vpndial_settings_net.ini" "Field 4" "State"
128  Section      !insertmacro MUI_INSTALLOPTIONS_READ $R4 "vpndial_settings_net.ini" "Field 7" "State"
129  nsExec::Exec "$INSTDIR\bin\winhttpcertcfg.exe  -g -i $INSTDIR\certs\$usercert -c LOCAL_MACHINE\My -a $currentuser"  
130  SectionEnd      StrCpy $destination_net "$R1.$R2.$R3.$R4"
131        
132  ; Optional section (can be disabled by the user)      ;Get Destination_mask
133  Section "Start Menu Shortcuts" IDX_STARTMENU      !insertmacro MUI_INSTALLOPTIONS_READ $R5 "vpndial_settings_net.ini" "Field 12" "State"
134        !insertmacro MUI_INSTALLOPTIONS_READ $R6 "vpndial_settings_net.ini" "Field 13" "State"  
135    SetDetailsPrint both      !insertmacro MUI_INSTALLOPTIONS_READ $R7 "vpndial_settings_net.ini" "Field 14" "State"
136    DetailPrint "Installiere Startmenü-Einträge und Desktop-Verknüpfungen..."      !insertmacro MUI_INSTALLOPTIONS_READ $R8 "vpndial_settings_net.ini" "Field 15" "State"
137    
138    CreateDirectory "$SMPROGRAMS\VpnDial"      StrCpy  $destination_mask "$R12.$R13.$R14.$R15"
139    CreateShortCut "$SMPROGRAMS\VpnDial\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0  
140    CreateShortCut "$SMPROGRAMS\VpnDial\VpnMonitor.lnk" "$INSTDIR\bin\VpnDial.exe" "--gui --up --monitor $connectionname --net $destination_net" "$INSTDIR\bin\VpnDial.exe" 0      ;--------------------------------------------------------------------------------------------------------------
141    CreateShortCut "$SMPROGRAMS\VpnDial\VpnDial.lnk" "$INSTDIR\bin\VpnDial.exe" "--dial $connectionname --net $destination_net" "$INSTDIR\bin\VpnDial.exe" 0  
142    ;CreateShortCut "$SMPROGRAMS\VpnDial\VpnSetup.lnk" "$INSTDIR\bin\VpnDial.exe" "--setup $connectionname --user $username --pass $userpass" "$INSTDIR\bin\VpnDial.exe" 0      ;Get Parameter from vpndial_settings_cert.ini
143    CreateShortCut "$SMPROGRAMS\VpnDial\Zertifikate.lnk" "$INSTDIR\certs\" "" "$INSTDIR\certs\" 0  
144    CreateShortCut "$SMPROGRAMS\VpnDial\ZertifikatsVerwaltung.lnk" "$INSTDIR\links\IPSec.msc" "" "$INSTDIR\links\IPSec.msc" 0      !insertmacro MUI_INSTALLOPTIONS_READ $cacert "vpndial_settings_cert.ini" "Field 2" "State"
145    CreateShortCut "$SMPROGRAMS\VpnDial\README.lnk" "$INSTDIR\doc\README.txt" "" "$INSTDIR\doc\README.txt" 0      !insertmacro MUI_INSTALLOPTIONS_READ $usercert "vpndial_settings_cert.ini" "Field 3" "State"
146    CreateShortCut "$SMPROGRAMS\VpnDial\README-HTML.lnk" "$INSTDIR\doc\README.htm" "" "$INSTDIR\doc\README.htm" 0  
147    SectionEnd
148    CopyFiles "$INSTDIR\links\Netzwerkverbindung*" "$SMPROGRAMS\VpnDial\"  
149    Section
150  SectionEnd    SetShellVarContext all
151      Push $APPDATA\Microsoft\Network\Connections\Pbk\rasphone.pbk
152      Push "[$connectionname]"
153       Call FileSearch
154  ; --------------------------------    Pop $0 #Number of times found throughout
155  ;   Uninstaller    Pop $1 #Found at all? yes/no
156  ; --------------------------------    Pop $2 #Number of lines found in
157      StrCmp $1 yes 0 +3
158  Section "Uninstall" IDX_UNINSTALL    MessageBox MB_OK "Die Verbindung $\"$connectionname$\" existiert bereits. Der Eintrag kann leider nicht doppelt angelegt werden."
159      Abort
160    ; ------------------  SectionEnd
161    ;   uninstall VpnDial  
162    ; ------------------  Section "VpnDial" IDX_VpnDial
163    
164    ; Remove registry keys    SetOverwrite on
165    DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VpnDial"      
166    DeleteRegKey HKLM SOFTWARE\NSIS_VpnDial    SetDetailsPrint both
167      DetailPrint "Installiere VpnDial..."
168    ;Remove files and uninstaller  
169    ;Delete $INSTDIR\makensisw.exe    ;SectionIn RO
170    ;Delete $INSTDIR\uninstall.exe    
171    ;Delete "$INSTDIR\*.*"    ; Set output path to the installation directory.
172          SetOutPath $INSTDIR
173    ; Remove shortcuts, if any  
174    Delete "$SMPROGRAMS\VpnDial\*.*"    ;CreateDirectory $INSTDIR\certs\
175    
176    ; Remove directories used    ; Put file there
177    RMDir /r "$SMPROGRAMS\VpnDial"    File /r "vpndial\*.*"
178    RMDir /r "$INSTDIR"      
179      ; Write the installation path into the registry
180  SectionEnd    WriteRegStr HKLM Software\NSIS_VpnDial "Install_Dir" "$INSTDIR"
181      
182      ; Write the uninstall keys for Windows
183      WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VpnDial" "DisplayName" "VpnDial"
184      WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VpnDial" "UninstallString" '"$INSTDIR\uninstall.exe"'
185      WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VpnDial" "NoModify" 1
186      WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VpnDial" "NoRepair" 1
187      WriteUninstaller "uninstall.exe"
188    
189    SectionEnd
190    
191    Section
192      DetailPrint "Installiere VPN-Verbindung..."
193      Push "[##connectionname##]"            #-- text to be replaced  within the " "
194      Push "[$connectionname]"             #-- replace with anything within the " "
195      Push all                      #-- replace all occurrences
196      Push all                      #-- replace all occurrences
197      Push "$INSTDIR\pbk\connection.pbk"      #-- file to replace in
198      Call AdvReplaceInFile         #-- Call the Function
199    SectionEnd
200    
201    Section
202      Push "PhoneNumber=##destinationhost##"            #-- text to be replaced  within the " "
203      Push "PhoneNumber=$destination_host"             #-- replace with anything within the " "
204      Push all                      #-- replace all occurrences
205      Push all                      #-- replace all occurrences
206      Push "$INSTDIR\pbk\connection.pbk"      #-- file to replace in
207      Call AdvReplaceInFile         #-- Call the Function
208    SectionEnd
209    
210    Section
211      SetShellVarContext all
212        Push $INSTDIR\pbk\rasphone.pbk
213        Push $APPDATA\Microsoft\Network\Connections\Pbk\rasphone.pbk
214        Push $INSTDIR\pbk\connection.pbk
215        Call JoinFiles        
216        CopyFiles $APPDATA\Microsoft\Network\Connections\Pbk\rasphone.pbk $INSTDIR\pbk\rasphone_orig.pbk
217        CopyFiles $INSTDIR\pbk\rasphone.pbk $APPDATA\Microsoft\Network\Connections\Pbk\rasphone.pbk
218      SetShellVarContext current
219    SectionEnd
220    
221    Section
222    nsExec::Exec "$INSTDIR\bin\VpnDial.exe --setup $connectionname --user $username --pass $userpass"
223    SectionEnd
224    
225    Section
226    ;nsExec::Exec "$INSTDIR\bin\certmgr.exe -add -c $INSTDIR\certs\$cacert -s -r localMachine root"
227    ;nsExec::Exec "$INSTDIR\bin\certmgr.exe -add -c $cacert -s -r localMachine root"
228    SectionEnd
229    
230    Section
231    ;nsExec::Exec "$INSTDIR\bin\winhttpcertcfg.exe  -g -i $INSTDIR\certs\$usercert -c LOCAL_MACHINE\My -a $currentuser"
232    nsExec::Exec "$INSTDIR\bin\winhttpcertcfg.exe  -g -i $usercert -c LOCAL_MACHINE\My -a $currentuser"
233    SectionEnd
234    
235    ; Optional section (can be disabled by the user)
236    Section "Startmenü-Einträge" IDX_STARTMENU
237    
238      SetDetailsPrint both
239      DetailPrint "Installiere Startmenü-Einträge und Desktop-Verknüpfungen..."
240    
241      CreateDirectory "$SMPROGRAMS\VpnDial"
242      CreateShortCut "$SMPROGRAMS\VpnDial\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
243      CreateShortCut "$SMPROGRAMS\VpnDial\VpnMonitor.lnk" "$INSTDIR\bin\VpnDial.exe" "--gui --up --monitor $connectionname --net $destination_net" "$INSTDIR\bin\VpnDial.exe" 0
244      CreateShortCut "$SMPROGRAMS\VpnDial\VpnDial.lnk" "$INSTDIR\bin\VpnDial.exe" "--dial $connectionname --net $destination_net" "$INSTDIR\bin\VpnDial.exe" 0
245      ;CreateShortCut "$SMPROGRAMS\VpnDial\VpnSetup.lnk" "$INSTDIR\bin\VpnDial.exe" "--setup $connectionname --user $username --pass $userpass" "$INSTDIR\bin\VpnDial.exe" 0
246      CreateShortCut "$SMPROGRAMS\VpnDial\Zertifikate.lnk" "$INSTDIR\certs\" "" "$INSTDIR\certs\" 0
247      CreateShortCut "$SMPROGRAMS\VpnDial\ZertifikatsVerwaltung.lnk" "$INSTDIR\links\IPSec.msc" "" "$INSTDIR\links\IPSec.msc" 0
248      ;CreateShortCut "$SMPROGRAMS\VpnDial\README.lnk" "$INSTDIR\doc\README.txt" "" "$INSTDIR\doc\README.txt" 0
249      ;CreateShortCut "$SMPROGRAMS\VpnDial\README-HTML.lnk" "$INSTDIR\doc\README.htm" "" "$INSTDIR\doc\README.htm" 0
250    
251      CopyFiles "$INSTDIR\links\Netzwerkverbindung*" "$SMPROGRAMS\VpnDial\"
252    
253    SectionEnd
254    
255    
256    ; --------------------------------
257    ;   Uninstaller
258    ; --------------------------------
259    
260    Section "Uninstall" IDX_UNINSTALL
261    
262      ; ------------------
263      ;   uninstall VpnDial
264      ; ------------------
265    
266      ; Remove registry keys
267      DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VpnDial"
268      DeleteRegKey HKLM SOFTWARE\NSIS_VpnDial
269    
270      ;Remove files and uninstaller
271      ;Delete $INSTDIR\makensisw.exe
272      ;Delete $INSTDIR\uninstall.exe
273      ;Delete "$INSTDIR\*.*"
274        
275      ; Remove shortcuts, if any
276      Delete "$SMPROGRAMS\VpnDial\*.*"
277    
278      ; Remove directories used
279      RMDir /r "$SMPROGRAMS\VpnDial"
280      RMDir /r "$INSTDIR"
281    
282    SectionEnd

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.6

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed