[quake3-commits] r1528 - trunk/misc/nsis

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Apr 18 15:01:25 EDT 2009


Author: ludwig
Date: 2009-04-18 15:01:24 -0400 (Sat, 18 Apr 2009)
New Revision: 1528

Added:
   trunk/misc/nsis/ioquake3-q3ctc.nsi
Log:
sample NSIS description file for a ioquake3 mod installer

Added: trunk/misc/nsis/ioquake3-q3ctc.nsi
===================================================================
--- trunk/misc/nsis/ioquake3-q3ctc.nsi	                        (rev 0)
+++ trunk/misc/nsis/ioquake3-q3ctc.nsi	2009-04-18 19:01:24 UTC (rev 1528)
@@ -0,0 +1,140 @@
+; sample NSIS description file for a ioquake3 mod installer
+
+!define NAME "Catch the Chicken"
+!define FSNAME "ioquake3-q3ctc"
+!define VERSION "1.4"
+!define RELEASE "1"
+!define MODDIR "q3ctc"
+!define PUBLISHER "The ioquake3 Team"
+!define URL "http://ioquake3.org/"
+; uncomment if the mod works without baseq3
+;!define STANDALONE
+
+!define MUI_ICON "../quake3.ico"
+
+!macro FILES
+  File ctc0.pk3
+  File ctc1.pk3
+  File description.txt
+  File gfx/chicken.jpg
+  File gfx/egggun.jpg
+  File gfx/q3ctc.gif
+  File q3ctc.config
+  File q3ctcteam.config
+  File readme.html
+  File readmeFirst.txt
+!macroend
+
+; no need to edit below in theory
+
+SetCompressor lzma
+
+!define MULTIUSER_MUI
+!define MULTIUSER_EXECUTIONLEVEL Highest
+!define MULTIUSER_INSTALLMODE_COMMANDLINE
+!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY "Software\ioquake3"
+!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME "Install_Mode"
+!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "Software\ioquake3"
+!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME "Install_Dir"
+!define MULTIUSER_INSTALLMODE_INSTDIR "ioquake3"
+!include MultiUser.nsh
+
+!include "FileFunc.nsh"
+
+!include "MUI2.nsh"
+
+; The name of the installer
+Name "${NAME}-${VERSION} for ioquake3"
+
+; The file to write
+OutFile "${FSNAME}-${VERSION}-${RELEASE}.x86.exe"
+
+;Interface Settings
+
+!define MUI_ABORTWARNING
+
+;--------------------------------
+;Pages
+
+!insertmacro MULTIUSER_PAGE_INSTALLMODE
+;!insertmacro MUI_PAGE_LICENSE "id_patch_pk3s_Q3A_EULA.txt"
+!define MUI_COMPONENTSPAGE_NODESC
+!insertmacro MUI_PAGE_COMPONENTS
+!insertmacro MUI_PAGE_DIRECTORY
+!insertmacro MUI_PAGE_INSTFILES
+
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+
+;--------------------------------
+;Languages
+
+!insertmacro MUI_LANGUAGE "English"
+
+;--------------------------------
+
+;--------------------------------
+;Multiuser stuff
+Function .onInit
+  !insertmacro MULTIUSER_INIT
+  ReadRegStr $0 SHCTX "Software\ioquake3" ${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME}
+  IfErrors 0 oninitdone
+    MessageBox MB_OK "You need to install the ioquake3 engine first"
+    Abort
+  oninitdone:
+FunctionEnd
+
+Function un.onInit
+  !insertmacro MULTIUSER_UNINIT
+FunctionEnd
+
+; The stuff to install
+Section "${NAME}" sec_base
+
+  SectionIn RO
+
+  SetOutPath $INSTDIR
+
+  SetOutPath "$INSTDIR\${MODDIR}"
+
+  !insertmacro FILES
+
+  ; Write the uninstall keys for Windows
+  WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FSNAME}" "DisplayName" "${NAME}"
+  WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FSNAME}" "DisplayVersion" "${VERSION}-${RELEASE}"
+  WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FSNAME}" "Publisher" "${PUBLISHER}"
+  WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FSNAME}" "URLInfoAbout" "${URL}"
+  WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FSNAME}" "UninstallString" '"$INSTDIR\uninstall-${FSNAME}.exe"'
+  WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FSNAME}" "NoModify" 1
+  WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FSNAME}" "NoRepair" 1
+
+  WriteUninstaller "uninstall-${FSNAME}.exe"
+
+!ifdef STANDALONE
+!define ARGS "+set com_standalone 1 "
+!else
+!define ARGS ""
+!endif
+  CreateShortCut "$SMPROGRAMS\ioquake3\${NAME}.lnk" "$INSTDIR\ioquake3.x86.exe" "${ARGS}+set fs_game ${MODDIR}" "$INSTDIR\ioquake3.x86.exe" 0 "" "" "${NAME}"
+
+SectionEnd
+
+Section "Uninstall"
+
+  ; Remove registry keys
+  DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FSNAME}"
+
+  ; Remove files and uninstaller
+  Delete $INSTDIR\${MODDIR}\*
+  
+  Delete $INSTDIR\uninstall-${FSNAME}.exe
+
+  ; Remove shortcuts, if any
+  Delete "$SMPROGRAMS\ioquake3\${NAME}.lnk"
+
+  ; Remove directories used
+  RMDir "$SMPROGRAMS\ioquake3"
+  RMDir "$INSTDIR\${MODDIR}"
+  RMDir "$INSTDIR"
+
+SectionEnd



More information about the quake3-commits mailing list