]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Added MultiFileExtract capability to Windows Installer.
authorjames <james@e7ae566f-a301-0410-adde-c780ea21d3b5>
Mon, 1 Dec 2008 22:32:06 +0000 (22:32 +0000)
committerjames <james@e7ae566f-a301-0410-adde-c780ea21d3b5>
Mon, 1 Dec 2008 22:32:06 +0000 (22:32 +0000)
git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@3620 e7ae566f-a301-0410-adde-c780ea21d3b5

install-win32/ExtractAuxFile.nsi [deleted file]
install-win32/maketext
install-win32/openvpn.nsi
install-win32/settings.in

diff --git a/install-win32/ExtractAuxFile.nsi b/install-win32/ExtractAuxFile.nsi
deleted file mode 100644 (file)
index ffb7b34..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-; ExtractAuxFile
-;   Copies a text file appended to the end of the installer EXE
-;   to a caller-specified output file.
-; Inputs:
-;   output_filename (string) -- the output filename
-; Outputs:
-;   status (int) -- 0 on success, > 0 on failure
-
-Function ExtractAuxFile
-  Exch $R1            ; output filename argument
-  ; locals
-  Push $R0
-  Push $1
-  Push $2
-  Push $3
-  Push $4
-  Push $5
-  ClearErrors
-
-  ; $R0 = installer filename
-  System::Call 'kernel32::GetModuleFileNameA(i 0, t .R0, i 1024) i r1'
-
-  ; $1 = open (installer_exe) for read
-  FileOpen $1 $R0 r
-  IfErrors openin_err
-
-  ; seek to EOF - 8 (start of 8-byte trailer)
-  ; $3 = seekpos
-  IntOp $2 0 - 8
-  FileSeek $1 $2 END $3
-
-  ; $4 = -(content_length(auxfile) + 8)
-  ; seek position from end of file to beginning of content
-  FileReadByte $1 $4
-  FileReadByte $1 $5
-  IfErrors readlen_err
-  IntOp $5 $5 << 8
-  IntOp $4 $4 + $5
-  IntOp $4 $4 + 8
-  IntOp $4 0 - $4
-
-  ; verify magic sequence 0xae, 0xb7, 0x03, 0x69, 0x42, 0x11
-  FileReadByte $1 $5
-  IntCmp $5 0xae 0 magic_err magic_err
-  FileReadByte $1 $5
-  IntCmp $5 0xb7 0 magic_err magic_err
-  FileReadByte $1 $5
-  IntCmp $5 0x03 0 magic_err magic_err
-  FileReadByte $1 $5
-  IntCmp $5 0x69 0 magic_err magic_err
-  FileReadByte $1 $5
-  IntCmp $5 0x42 0 magic_err magic_err
-  FileReadByte $1 $5
-  IntCmp $5 0x11 0 magic_err magic_err
-  IfErrors magic_err
-
-  ; seek to start of auxfile data
-  FileSeek $1 $4 END
-
-  ; $2 = open (output_filename) for write
-  FileOpen $2 $R1 w
-  IfErrors openout_err
-
-loop:
-  ; check if we are finished
-  FileSeek $1 0 CUR $5
-  IntCmp $5 $3 success 0 overshot_err
-
-  ; copy next line from .exe to output file
-  FileRead $1 $5
-  IfErrors read_err
-  FileWrite $2 $5
-  IfErrors write_err
-  goto loop
-
-success:
-  IntOp $R1 0 + 0
-  goto fin
-
-openin_err:
-  IntOp $R1 1 + 0
-  goto fin
-
-openout_err:
-  IntOp $R1 2 + 0
-  goto fin
-
-readlen_err:
-  IntOp $R1 3 + 0
-  goto fin
-
-overshot_err:
-  IntOp $R1 4 + 0
-  goto fin
-
-read_err:
-  IntOp $R1 5 + 0
-  goto fin
-
-write_err:
-  IntOp $R1 6 + 0
-  goto fin
-
-magic_err:
-  IntOp $R1 7 + 0
-  goto fin
-
-fin:
-  Pop $5
-  Pop $4
-  Pop $3
-  Pop $2
-  Pop $1
-  Pop $R0
-  Exch $R1
-FunctionEnd
index f8354dbdfc041dfb429d358f4c9ad47e51d97eb3..cf59b53b385d1a896b074e64def351a1854dd82a 100644 (file)
@@ -39,7 +39,10 @@ cp autodefs/xguidefs.nsi $n
 cp install-win32/openvpn.nsi $n
 cp install-win32/setpath.nsi $n
 cp install-win32/GetWindowsVersion.nsi $n
-cp install-win32/ExtractAuxFile.nsi $n
+
+if [ -n "$EXTRACT_FILES" ]; then
+    cp install-win32/MultiFileExtract.nsi $n
+fi
 
 # get OpenVPN client config files
 if [ -n "$SAMPCONF_DIR" ]; then
index ae86475f9f36596bd4018388d23256e0dcb2eda3..c1a171017b32191a8a7bb44e14371529632c8175 100755 (executable)
@@ -16,7 +16,10 @@ SetCompressor lzma
 !include "xguidefs.nsi"
 !include "setpath.nsi"
 !include "GetWindowsVersion.nsi"
-!include "ExtractAuxFile.nsi"
+
+!ifdef EXTRACT_FILES
+!include "MultiFileExtract.nsi"
+!endif
 
 !define GEN ".."
 !define BIN "${GEN}\bin"
@@ -529,15 +532,15 @@ Section -post
   !endif
   !endif
 
-  ; Try to extract AUX_FILE, if present
-  !ifdef AUX_FILE
-    Push "$INSTDIR\config\${AUX_FILE}"
-    Call ExtractAuxFile
+  ; Try to extract files if present
+  !ifdef EXTRACT_FILES
+    Push "$INSTDIR"
+    Call MultiFileExtract
     Pop $R0
     IntCmp $R0 0 +3 +1 +1
-    DetailPrint "ExtractAuxFile Failed status=$R0"
+    DetailPrint "MultiFileExtract Failed status=$R0"
     goto +2
-    DetailPrint "ExtractAuxFile Succeeded"
+    DetailPrint "MultiFileExtract Succeeded"
   !endif
 
   ;
index af801cbc6e3cfefb4f77c882e29765b7c96f9c3d..e9159aff92d65b541b8fe0721f8527ab9f274ed4 100644 (file)
@@ -90,6 +90,5 @@
 ;!define SAMPCONF_CRT   "test.crt"
 ;!define SAMPCONF_KEY   "test.key"
 
-# Include a sample configuration file via ExtractAuxFile
-# functionality.
-!define AUX_FILE        "client.ovpn"
+# Extract files embedded in installer
+;!define EXTRACT_FILES