summaryrefslogtreecommitdiff
path: root/win/inspircd.nsi
diff options
context:
space:
mode:
Diffstat (limited to 'win/inspircd.nsi')
-rw-r--r--win/inspircd.nsi253
1 files changed, 0 insertions, 253 deletions
diff --git a/win/inspircd.nsi b/win/inspircd.nsi
deleted file mode 100644
index e1ce0159f..000000000
--- a/win/inspircd.nsi
+++ /dev/null
@@ -1,253 +0,0 @@
-;
-; InspIRCd -- Internet Relay Chat Daemon
-;
-; Copyright (C) 2011 Adam <Adam@anope.org>
-; Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
-; Copyright (C) 2007 Craig Edwards <craigedwards@brainbox.cc>
-;
-; This file is part of InspIRCd. InspIRCd is free software: you can
-; redistribute it and/or modify it under the terms of the GNU General Public
-; License as published by the Free Software Foundation, version 2.
-;
-; This program is distributed in the hope that it will be useful, but WITHOUT
-; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-; FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-; details.
-;
-; You should have received a copy of the GNU General Public License
-; along with this program. If not, see <http://www.gnu.org/licenses/>.
-;
-
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- ;;;; SET THE BUILD TO BE PACKAGED HERE ;;;;
-
-!define BUILD "release"
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-; HM NIS Edit Wizard helper defines
-!define PRODUCT_NAME "InspIRCd"
-!define PRODUCT_VERSION "2.0"
-!define PRODUCT_PUBLISHER "InspIRCd Development Team"
-!define PRODUCT_WEB_SITE "http://www.inspircd.org/"
-!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\inspircd.exe"
-!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
-!define PRODUCT_UNINST_ROOT_KEY "HKLM"
-!define DOT_MAJOR "2"
-!define DOT_MINOR "0"
-
-SetCompressor bzip2
-
-; MUI 1.67 compatible ------
-!include "MUI.nsh"
-
-; MUI Settings
-!define MUI_ABORTWARNING
-!define MUI_ICON "inspircd.ico"
-!define MUI_UNICON "inspircd.ico"
-
-; Welcome page
-!insertmacro MUI_PAGE_WELCOME
-; License page
-!define MUI_LICENSEPAGE_CHECKBOX
-!insertmacro MUI_PAGE_LICENSE "..\docs\COPYING"
-; directory page
-Page directory
-; Components page
-!insertmacro MUI_PAGE_COMPONENTS
-; Instfiles page
-!insertmacro MUI_PAGE_INSTFILES
-
-; Uninstaller pages
-!insertmacro MUI_UNPAGE_INSTFILES
-
-; Language files
-!insertmacro MUI_LANGUAGE "English"
-
-; Reserve files
-!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
-
-; MUI end ------
-
-Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
-OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}-Setup.exe"
-InstallDir "$PROGRAMFILES\InspIRCd"
-InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
-ShowInstDetails show
-ShowUnInstDetails show
-
-Function IsDotNetInstalled
-
- StrCpy $0 "0"
- StrCpy $1 "SOFTWARE\Microsoft\.NETFramework" ;registry entry to look in.
- StrCpy $2 0
-
- StartEnum:
- ;Enumerate the versions installed.
- EnumRegKey $3 HKLM "$1\policy" $2
-
- ;If we don't find any versions installed, it's not here.
- StrCmp $3 "" noDotNet notEmpty
-
- ;We found something.
- notEmpty:
- ;Find out if the RegKey starts with 'v'.
- ;If it doesn't, goto the next key.
- StrCpy $4 $3 1 0
- StrCmp $4 "v" +1 goNext
- StrCpy $4 $3 1 1
-
- ;It starts with 'v'. Now check to see how the installed major version
- ;relates to our required major version.
- ;If it's equal check the minor version, if it's greater,
- ;we found a good RegKey.
- IntCmp $4 ${DOT_MAJOR} +1 goNext yesDotNetReg
- ;Check the minor version. If it's equal or greater to our requested
- ;version then we're good.
- StrCpy $4 $3 1 3
- IntCmp $4 ${DOT_MINOR} yesDotNetReg goNext yesDotNetReg
-
- goNext:
- ;Go to the next RegKey.
- IntOp $2 $2 + 1
- goto StartEnum
-
- yesDotNetReg:
- ;Now that we've found a good RegKey, let's make sure it's actually
- ;installed by getting the install path and checking to see if the
- ;mscorlib.dll exists.
- EnumRegValue $2 HKLM "$1\policy\$3" 0
- ;$2 should equal whatever comes after the major and minor versions
- ;(ie, v1.1.4322)
- StrCmp $2 "" noDotNet
- ReadRegStr $4 HKLM $1 "InstallRoot"
- ;Hopefully the install root isn't empty.
- StrCmp $4 "" noDotNet
- ;build the actuall directory path to mscorlib.dll.
- StrCpy $4 "$4$3.$2\mscorlib.dll"
- IfFileExists $4 yesDotNet noDotNet
-
- noDotNet:
- MessageBox MB_OK "You do not have have v${DOT_MAJOR}.${DOT_MINOR} or greater of the .NET framework installed. This is required for the InspIRCd Monitor, however you can still launch the IRCd manually."
-
- yesDotNet:
- ;Everything checks out. Go on with the rest of the installation.
-
-FunctionEnd
-
-Section "Binary Executable" SEC01
- Call IsDotNetInstalled
- CreateDirectory "$SMPROGRAMS\InspIRCd"
- CreateDirectory "$INSTDIR\logs"
- CreateDirectory "$INSTDIR\data"
- CreateShortCut "$SMPROGRAMS\InspIRCd\InspIRCd.lnk" "$INSTDIR\inspircd.exe"
- SetOutPath "$INSTDIR"
- SetOverwrite ifnewer
- File "..\bin\${BUILD}\inspircd.exe"
- DetailPrint "Installing InspIRCd service..."
- nsExec::Exec /TIMEOUT=30000 '"$INSTDIR\inspircd.exe" --installservice'
-SectionEnd
-
-Section "Config Files" SEC02
- SetOutPath "$INSTDIR\conf"
- File "..\docs\conf\*.example"
- SetOutPath "$INSTDIR\conf\aliases"
- File "..\docs\conf\aliases\*.example"
- SetOutPath "$INSTDIR\conf\modules"
- File "..\docs\conf\modules\*.example"
-SectionEnd
-
-Section "Command Handlers" SEC03
- SetOutPath "$INSTDIR\modules"
- File "..\bin\${BUILD}\modules\cmd_*.so"
-SectionEnd
-
-Section "Modules" SEC04
- SetOutPath "$INSTDIR\modules"
- File "..\bin\${BUILD}\modules\m_*.so"
- ; Copy DLLs required for modules
- SetOutPath "$INSTDIR"
- File /nonfatal "*.dll"
- File "make_gnutls_cert.bat"
-SectionEnd
-
-Section -AdditionalIcons
- SetOutPath $INSTDIR
- WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
- CreateShortCut "$SMPROGRAMS\InspIRCd\InspIRCd Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url"
- CreateShortCut "$SMPROGRAMS\InspIRCd\Uninstall.lnk" "$INSTDIR\uninst.exe"
-SectionEnd
-
-Section -Post
- WriteUninstaller "$INSTDIR\uninst.exe"
- WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\inspircd.exe"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\inspircd.exe"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
- MessageBox MB_ICONINFORMATION|MB_OK "InspIRCd was successfully installed. Remember to edit your configuration file in $INSTDIR\conf!"
-SectionEnd
-
-; Section descriptions
-!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
- !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "Actual executable"
- !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "Command modules"
- !insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "Default configuration files"
- !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} "Optional non-SSL modules"
-!insertmacro MUI_FUNCTION_DESCRIPTION_END
-
-
-Function un.onUninstSuccess
- HideWindow
- MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer."
-FunctionEnd
-
-Function .onInit
- SectionSetFlags ${SEC01} 17
- SectionSetFlags ${SEC03} 17
- StrCpy $INSTDIR "$PROGRAMFILES\InspIRCd"
-FunctionEnd
-
-Function un.onInit
- MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2
- Abort
-FunctionEnd
-
-Section Uninstall
- DetailPrint "Uninstalling InspIRCd service..."
- nsExec::Exec /TIMEOUT=30000 '"$INSTDIR\inspircd.exe" --removeservice'
- Delete "$INSTDIR\${PRODUCT_NAME}.url"
- Delete "$INSTDIR\uninst.exe"
- Delete "$INSTDIR\modules\*.so"
- Delete "$INSTDIR\conf\*.example"
- Delete "$INSTDIR\conf\aliases\*.example"
- Delete "$INSTDIR\conf\modules\*.example"
- Delete "$INSTDIR\conf\modules\modules.conf.charybdis"
- Delete "$INSTDIR\conf\modules\modules.conf.unreal"
- Delete "$INSTDIR\*.log"
- Delete "$INSTDIR\logs\*"
- Delete "$INSTDIR\data\*"
- Delete "$INSTDIR\*.dll"
- Delete "$INSTDIR\make_gnutls_cert.bat"
- Delete "$INSTDIR\inspircd.exe"
- Delete "$SMPROGRAMS\InspIRCd\Uninstall.lnk"
- Delete "$SMPROGRAMS\InspIRCd\InspIRCd Website.lnk"
- Delete "$SMPROGRAMS\InspIRCd\InspIRCd.lnk"
-
- RMDir "$SMPROGRAMS\InspIRCd"
- RMDir "$INSTDIR\modules"
- RMDir "$INSTDIR\conf\aliases"
- RMDir "$INSTDIR\conf\modules"
- RMDir "$INSTDIR\conf"
- RMDir "$INSTDIR\logs"
- RMDir "$INSTDIR\data"
- RMDir "$INSTDIR"
-
- DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
- DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
- SetAutoClose true
-SectionEnd