NSIS Script
Aus NeoWiki
Erklärung wie man mit Hilfe des Nullsoft Scriptable Install Systems eine eigene Installer Programmdatei erzeugt.
Inhaltsverzeichnis |
NSIS
Download und am besten einer Full Installation der NSIS Setup.exe von http://nsis.sourceforge.net
NSIS- & Neo Mule-Zusatzdateien
Download der NSIS.zip aus dem Ordner Neo Mule NSIS welche nach dem entpacken ins Installationsverzeichnis kopiert werden muss welches unter dem vorangegangenen Punkt angelegt wurde.
Neo Mule Binary
Die gewünschte Releasedatei Neo_Mule_v*.**_bin.zip, welche unter http://sourceforge.net/projects/neomule/ zu finden ist und als Setup verwendet werden soll ebenfalls komplett in das Installationsverzeichnis von NSIS entpacken.
Neo Mule Installer kompilieren
Nun kann man durch Rechtsklick auf die Datei NeoMule.nsi die Installer Datei erzeugen welche nach fertigem kompilieren im selben Ordner erzeugt wird.
Update
Das Beispiel basiert auf dem Neo Mule 4.25 und den zu der Zeit aktuellen Zusatzdateien. Für neuere Versionen empfiehlt es sich die Zusatzdateien und die NeoMule.nsi auf den neuesten Stand zu bringen, ist aber nicht zwingend erforderlich.
NeoMule.nsi
Beispiel der NeoMule.nsi welche auch im NSIS.zip Paket enthalten ist.
# NSIS Modern User Interface version 1.75 for Neo Mule
# 10.10.2006 22:00:00
Name "Neo Mule"
SetCompressor lzma
# Defines
!define REGKEY "SOFTWARE\$(^Name)" ; $(^Name) = Neo Mule !!!
!define VERSION 4.25
!define COMPANY "David Xanatos"
!define URL http://neomule.sf.net
Caption "Neo Mule ${VERSION} Setup"
BrandingText " © David Xanatos "
# Set the hyperlink up.
Function onGUIInit
BrandingURL::Set /NOUNLOAD "200" "0" "0" "http://neomule.sf.net"
FunctionEnd
;Interface Settings
!define MUI_ABORTWARNING
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\header.bmp" ; optional
# MUI defines
!define MUI_CUSTOMFUNCTION_GUIINIT onGUIInit
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\XPUI-install.ico"
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_LICENSEPAGE_RADIOBUTTONS
!define MUI_COMPONENTSPAGE_SMALLDESC
!define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Neo Mule"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup
!define MUI_STARTMENUPAGE_DEFAULT_FOLDER "Neo Mule"
!define MUI_FINISHPAGE_LINK "Visit the Neo Mule forum for the latest news and support"
!define MUI_FINISHPAGE_LINK_LOCATION "http://eselfarm.info/efarm/board.php?boardid=277"
!define MUI_FINISHPAGE_RUN $INSTDIR\emule.exe
!define MUI_FINISHPAGE_SHOWREADME $INSTDIR\changelog.txt
!define MUI_FINISHPAGE_SHOWREADME_TEXT changelog.txt
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\XPUI-uninstall.ico"
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
!define MUI_LANGDLL_REGISTRY_ROOT HKLM
!define MUI_LANGDLL_REGISTRY_KEY ${REGKEY}
!define MUI_LANGDLL_REGISTRY_VALUENAME InstallerLanguage
# Included files
!include Sections.nsh
!include MUI.nsh
# Reserved Files
!insertmacro MUI_RESERVEFILE_LANGDLL
ReserveFile "${NSISDIR}\Plugins\AdvSplash.dll"
# Variables
Var StartMenuGroup
; Adds an XP manifest to the installer
XPStyle on
; Sets the font of the installer
; SetFont "Comic Sans MS" 8
; Defines the un-/installer logo of Neo Mule
!insertmacro MUI_DEFAULT MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\logo.bmp"
!insertmacro MUI_DEFAULT MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\logo.bmp"
;--------------------------------
;Configuration
;!insertmacro MUI_RESERVEFILE_SPECIALBITMAP
LicenseLangString myLicenseData 1033 "${NSISDIR}\license\license.txt"
LicenseLangString myLicenseData 1031 "${NSISDIR}\license\license-GER.txt"
LicenseLangString myLicenseData 1036 "${NSISDIR}\license\license-FR.txt"
LicenseLangString myLicenseData 1034 "${NSISDIR}\license\license-SP.txt"
LicenseLangString myLicenseData 1040 "${NSISDIR}\license\license-IT.txt"
LicenseLangString myLicenseData 1049 "${NSISDIR}\license\license-RU.txt"
LicenseLangString myLicenseData 1046 "${NSISDIR}\license\license-PT_BR.txt"
LicenseLangString myLicenseData 1030 "${NSISDIR}\license\license-DK.txt"
LicenseData $(myLicenseData)
# Installer pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "$(myLicenseData)"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_STARTMENU Application $StartMenuGroup
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
# Installer languages
!insertmacro MUI_LANGUAGE English
!insertmacro MUI_LANGUAGE German
!insertmacro MUI_LANGUAGE Spanish
!insertmacro MUI_LANGUAGE French
!insertmacro MUI_LANGUAGE Italian
!insertmacro MUI_LANGUAGE Russian
!insertmacro MUI_LANGUAGE PortugueseBR
!insertmacro MUI_LANGUAGE Danish
;Component-selection page
;Titles
LangString sec_main ${LANG_ENGLISH} "Program Files"
LangString sec_deinst ${LANG_ENGLISH} "Neo Mule deinstallation"
LangString sec_help ${LANG_ENGLISH} "Help Files"
LangString sec_languages ${LANG_ENGLISH} "Language Files"
LangString sec_extras ${LANG_ENGLISH} "Advanced Files"
LangString sec_link ${LANG_ENGLISH} "Take ed2k-Links"
LangString sec_shortcuts ${LANG_ENGLISH} "Shortcuts"
LangString DESC_sec_main ${LANG_ENGLISH} "Installs the program files."
LangString DESC_sec_help ${LANG_ENGLISH} "Installs available helpfiles. More languages might be available on our homepage."
LangString DESC_sec_shortcuts ${LANG_ENGLISH} "Create Neo Mule shortcut icons."
LangString DESC_sec_languages ${LANG_ENGLISH} "Full supported languages."
LangString DESC_sec_extras ${LANG_ENGLISH} "Additional files for full function support."
LangString DESC_sec_link ${LANG_ENGLISH} "Registers Neo Mule to take ed2k/collection-Links."
LangString DESC_lang_eng ${LANG_ENGLISH} "English"
LangString DESC_lang_de ${LANG_ENGLISH} "German"
LangString De_SEC0006 ${LANG_ENGLISH} "German"
LangString Eng_SEC0010 ${LANG_ENGLISH} "English"
LangString LANGUAGEID ${LANG_ENGLISH} "1033"
LangString LANGUAGEDLL ${LANG_ENGLISH} "-"
LangString sec_main ${LANG_GERMAN} "Programmdateien"
LangString sec_deinst ${LANG_GERMAN} "Neo Mule deinstallieren"
LangString sec_help ${LANG_GERMAN} "Hilfedateien"
LangString sec_languages ${LANG_GERMAN} "Sprachdateien"
LangString sec_extras ${LANG_GERMAN} "Extras"
LangString sec_link ${LANG_GERMAN} "Ed2k-Links nehmen"
LangString sec_shortcuts ${LANG_GERMAN} "Shortcuts"
LangString DESC_sec_main ${LANG_GERMAN} "Installiert die erforderlichen Programmdateien."
LangString DESC_sec_help ${LANG_GERMAN} "Installiert verfügbare Hilfedateien. Weitere Sprachen evtl. auf unserer Homepage verfügbar."
LangString DESC_sec_shortcuts ${LANG_GERMAN} "Erstellt eine Neo Mule Verknüpfung als Desktop und/oder Schnellstart Icon."
LangString DESC_sec_languages ${LANG_GERMAN} "Voll unterstützte Sprachen von Neo Mule."
LangString DESC_sec_extras ${LANG_GERMAN} "Zusätzliche Dateien für erweiterte Funktionsunterstützung."
LangString DESC_sec_link ${LANG_GERMAN} "Registriert Neo Mule für die Annahme von ed2k/Kollektion-Links."
LangString DESC_lang_eng ${LANG_GERMAN} "Englisch"
LangString DESC_lang_de ${LANG_GERMAN} "Deutsch"
LangString De_SEC0006 ${LANG_GERMAN} "Deutsch"
LangString Eng_SEC0010 ${LANG_GERMAN} "Englisch"
LangString LANGUAGEID ${LANG_GERMAN} "1031"
LangString LANGUAGEDLL ${LANG_GERMAN} "de_DE.dll"
LangString sec_main ${LANG_SPANISH} "Archivos de programa"
LangString sec_deinst ${LANG_SPANISH} "Desinstalar Neo Mule"
LangString sec_help ${LANG_SPANISH} "Archivos de ayuda"
LangString sec_languages ${LANG_SPANISH} "Archivos de idioma"
LangString sec_extras ${LANG_SPANISH} "Arquivos de avancado"
LangString sec_link ${LANG_SPANISH} "Capturar enlaces ed2k"
LangString sec_shortcuts ${LANG_SPANISH} "Atajos"
LangString DESC_sec_main ${LANG_SPANISH} "Instalar los archivos del programa."
LangString DESC_sec_help ${LANG_SPANISH} "Instalar archivos de ayuda disponibles. En nuestra web habrá mas lenguajes disponibles."
LangString DESC_sec_shortcuts ${LANG_SPANISH} "Crear Neo Mule atajo."
LangString DESC_sec_languages ${LANG_SPANISH} "Full supported languages."
LangString DESC_sec_extras ${LANG_SPANISH} "Additional files for full function support."
LangString DESC_sec_link ${LANG_SPANISH} "Registrar la asociación de los enlaces ed2k/Colección al Neo Mule."
LangString DESC_lang_eng ${LANG_SPANISH} "Inglés"
LangString DESC_lang_de ${LANG_SPANISH} "Alemán"
LangString De_SEC0006 ${LANG_SPANISH} "Alemán"
LangString Eng_SEC0010 ${LANG_SPANISH} "Inglés"
LangString LANGUAGEID ${LANG_SPANISH} "1034"
LangString LANGUAGEDLL ${LANG_SPANISH} "es_ES_T.dll"
LangString sec_main ${LANG_FRENCH} "Fichiers"
LangString sec_deinst ${LANG_FRENCH} "Désinstaller Neo Mule"
LangString sec_help ${LANG_FRENCH} "Fichier d'aides"
LangString sec_languages ${LANG_FRENCH} "Langue fichiers"
LangString sec_extras ${LANG_FRENCH} "Avancés fichiers"
LangString sec_link ${LANG_FRENCH} "Associer avec les liens ed2k"
LangString sec_shortcuts ${LANG_FRENCH} "Raccourcis"
LangString DESC_sec_main ${LANG_FRENCH} "Installer le fichier emule.exe"
LangString DESC_sec_help ${LANG_FRENCH} "Installer tous les fichiers d'aides disponibles."
LangString DESC_sec_shortcuts ${LANG_FRENCH} "Créer Neo Mule icône."
LangString DESC_sec_languages ${LANG_FRENCH} "Full supported languages."
LangString DESC_sec_extras ${LANG_FRENCH} "Additional files for full function support."
LangString DESC_sec_link ${LANG_FRENCH} "Ajouter Neo Mule dans le registre pour prendre les liens ed2k/collection."
LangString DESC_lang_eng ${LANG_FRENCH} "Anglais"
LangString DESC_lang_de ${LANG_FRENCH} "German"
LangString De_SEC0006 ${LANG_FRENCH} "German"
LangString Eng_SEC0010 ${LANG_FRENCH} "Anglais"
LangString LANGUAGEID ${LANG_FRENCH} "1036"
LangString LANGUAGEDLL ${LANG_FRENCH} "fr_FR.dll"
LangString sec_main ${LANG_ITALIAN} "Programmi"
LangString sec_deinst ${LANG_ITALIAN} "Disinstalla Neo Mule"
LangString sec_help ${LANG_ITALIAN} "Aiuto"
LangString sec_languages ${LANG_ITALIAN} "Lingua Files"
LangString sec_extras ${LANG_ITALIAN} "Avanzati Files"
LangString sec_link ${LANG_ITALIAN} "Prendi gli ed2k-Links"
LangString sec_shortcuts ${LANG_ITALIAN} "Scorciatoie"
LangString DESC_sec_main ${LANG_ITALIAN} "Installa i Files del Programma"
LangString DESC_sec_help ${LANG_ITALIAN} "Installa gli Help disponibili. Nel nostro sito ce ne potrebbero essere in altre lingue."
LangString DESC_sec_shortcuts ${LANG_ITALIAN} "Crea Neo Mule icona."
LangString DESC_sec_languages ${LANG_ITALIAN} "Full supported languages."
LangString DESC_sec_extras ${LANG_ITALIAN} "Additional files for full function support."
LangString DESC_sec_link ${LANG_ITALIAN} "Fai Prendere ad Neo Mule gli ed2k/Collezione-Links."
LangString DESC_lang_eng ${LANG_ITALIAN} "Inglese"
LangString DESC_lang_de ${LANG_ITALIAN} "Tedesco"
LangString De_SEC0006 ${LANG_ITALIAN} "Tedesco"
LangString Eng_SEC0010 ${LANG_ITALIAN} "Inglese"
LangString LANGUAGEID ${LANG_ITALIAN} "1040"
LangString LANGUAGEDLL ${LANG_ITALIAN} "it_IT.dll"
LangString sec_main ${LANG_RUSSIAN} "Program Files"
LangString sec_deinst ${LANG_RUSSIAN} "Óäàëåíèå Neo Mule"
LangString sec_help ${LANG_RUSSIAN} "Ôàéëû ïîìîùè"
LangString sec_languages ${LANG_RUSSIAN} "ßçûê ôàéËû"
LangString sec_extras ${LANG_RUSSIAN} "Ïîêàçûâàòü ôàéËû"
LangString sec_link ${LANG_RUSSIAN} "Ïåðåõâàòûâàòü ed2k-Ëèíêè"
LangString sec_shortcuts ${LANG_RUSSIAN} "Shortcuts"
LangString DESC_sec_main ${LANG_RUSSIAN} "Óñòàíîâêà ôàéëîâ ïðîãðàììû"
LangString DESC_sec_help ${LANG_RUSSIAN} "Äîïîëíèòåëüíûå ÿçûêè âîçìîæíî óæå äîñòóïíû íà íàøåé âåá ñòðàíèöå."
LangString DESC_sec_shortcuts ${LANG_RUSSIAN} "Shortcuts."
LangString DESC_sec_languages ${LANG_RUSSIAN} "Full supported languages."
LangString DESC_sec_extras ${LANG_RUSSIAN} "Additional files for full function support."
LangString DESC_sec_link ${LANG_RUSSIAN} "Ðåãèñòðèðîâàòü Neo Mule äëÿ ïåðåõâàòà ed2k/Êîëëåêöèÿ-ëèíêîâ."
LangString DESC_lang_eng ${LANG_RUSSIAN} "Àíãëèéñåêèé"
LangString DESC_lang_de ${LANG_RUSSIAN} "Íåìåöêèé"
LangString De_SEC0006 ${LANG_RUSSIAN} "Íåìåöêèé"
LangString Eng_SEC0010 ${LANG_RUSSIAN} "Àíãëèéñåêèé"
LangString LANGUAGEID ${LANG_RUSSIAN} "1049"
LangString LANGUAGEDLL ${LANG_RUSSIAN} "ru_RU.dll"
LangString sec_main ${LANG_PORTUGUESEBR} "Arquivos de programas"
LangString sec_deinst ${LANG_PORTUGUESEBR} "Desinstalação do Neo Mule"
LangString sec_help ${LANG_PORTUGUESEBR} "Arquivos de ajuda"
LangString sec_languages ${LANG_PORTUGUESEBR} "Arquivos de idioma"
LangString sec_extras ${LANG_PORTUGUESEBR} "Arquivos de avançadas"
LangString sec_link ${LANG_PORTUGUESEBR} "Pegar Links ed2k"
LangString sec_shortcuts ${LANG_PORTUGUESEBR} "Atalhos"
LangString DESC_sec_main ${LANG_PORTUGUESEBR} "Instalar o arquivo emule.exe"
LangString DESC_sec_help ${LANG_PORTUGUESEBR} "Instalar todos arquivos de Ajuda disponíveis."
LangString DESC_sec_shortcuts ${LANG_PORTUGUESEBR} "Atalhos."
LangString DESC_sec_languages ${LANG_PORTUGUESEBR} "Full supported languages."
LangString DESC_sec_extras ${LANG_PORTUGUESEBR} "Additional files for full function support."
LangString DESC_sec_link ${LANG_PORTUGUESEBR} "Registrar Neo Mule para pegar links ed2k/coleção."
LangString DESC_lang_eng ${LANG_PORTUGUESEBR} "Inglês"
LangString DESC_lang_de ${LANG_PORTUGUESEBR} "Alemão"
LangString De_SEC0006 ${LANG_PORTUGUESEBR} "Alemão"
LangString Eng_SEC0010 ${LANG_PORTUGUESEBR} "Inglês"
LangString LANGUAGEID ${LANG_PORTUGUESEBR} "1046"
LangString LANGUAGEDLL ${LANG_PORTUGUESEBR} "pt_BR.dll"
LangString sec_main ${LANG_DANISH} "Programmer"
LangString sec_deinst ${LANG_DANISH} "Afinstaller Neo Mule"
LangString sec_help ${LANG_DANISH} "Hjælpefiler"
LangString sec_languages ${LANG_DANISH} "Sprogfiler"
LangString sec_extras ${LANG_DANISH} "Yderligere filer"
LangString sec_link ${LANG_DANISH} "Overtag ed2k-Links"
LangString sec_shortcuts ${LANG_DANISH} "Shortcuts"
LangString DESC_sec_main ${LANG_DANISH} "Installerer programfilen emule.exe"
LangString DESC_sec_help ${LANG_DANISH} "Installerer alle tilgængelige hjælpefiler."
LangString DESC_sec_shortcuts ${LANG_DANISH} "Shortcuts."
LangString DESC_sec_languages ${LANG_DANISH} "Full supported languages."
LangString DESC_sec_extras ${LANG_DANISH} "Additional files for full function support."
LangString DESC_sec_link ${LANG_DANISH} "Registrerer Neo Mule til at overtage ed2k/Kollektion-Links."
LangString DESC_lang_eng ${LANG_DANISH} "English"
LangString DESC_lang_de ${LANG_DANISH} "German"
LangString De_SEC0006 ${LANG_DANISH} "German"
LangString Eng_SEC0010 ${LANG_DANISH} "English"
LangString LANGUAGEID ${LANG_DANISH} "1030"
LangString LANGUAGEDLL ${LANG_DANISH} "da_DK.dll"
;--------------------------------
# Installer attributes
OutFile Neo_Mule_${VERSION}_installer.exe
InstallDir "$PROGRAMFILES\Neo Mule"
InstallDirRegKey HKLM "Software\Neo Mule" Path
CRCCheck on
ShowInstDetails hide
ShowUninstDetails hide
InstType "Full"
InstType "Lite"
InstType "Minimal"
# Installer sections
Section $(sec_main) sec_main
SectionIn 1 2 3
SetShellVarContext all
SetOutPath $INSTDIR
SetOverwrite on
File "${NSISDIR}\emule.exe"
File "${NSISDIR}\changelog.txt"
SetOutPath $INSTDIR\config
File "${NSISDIR}\config\countryflag32.dll"
File "${NSISDIR}\config\countryflag.dll"
File "${NSISDIR}\config\dlp.dll"
File "${NSISDIR}\config\dlp.sig"
File "${NSISDIR}\config\eMule Light.tmpl"
File "${NSISDIR}\config\eMule.tmpl"
File "${NSISDIR}\config\ip-to-country.csv"
File "${NSISDIR}\config\leechers.dat"
File "${NSISDIR}\config\leechers.sig"
SetOverwrite off
File "${NSISDIR}\config\server.met"
SetOverwrite on
File "${NSISDIR}\config\webcaches.xml"
SetOutPath $INSTDIR\webserver
File "${NSISDIR}\webserver\*"
WriteRegStr HKLM "${REGKEY}\Components" sec_main 1
SectionEnd
Section $(sec_link) sec_link
SectionIn 1 2
DeleteRegKey HKCR "ed2k"
WriteRegStr HKEY_CLASSES_ROOT ed2k "" "URL: ed2k Protocol"
WriteRegStr HKEY_CLASSES_ROOT ed2k "URL Protocol" ""
WriteRegStr HKEY_CLASSES_ROOT ed2k\shell "" open
WriteRegStr HKEY_CLASSES_ROOT ed2k\DefaultIcon "" $INSTDIR\eMule.exe,1
WriteRegStr HKEY_CLASSES_ROOT ed2k\shell\open\command "" '"$INSTDIR\eMule.exe" "%1"'
WriteRegStr HKEY_CLASSES_ROOT .emulecollection "" "eMule"
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\.emulecollection "" "eMule"
DeleteRegKey HKLM "SOFTWARE\Classes\ed2k"
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\ed2k "" "URL: ed2k Protocol"
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\ed2k "URL Protocol" ""
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\ed2k\shell "" open
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\ed2k\DefaultIcon "" $INSTDIR\eMule.exe
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\ed2k\shell\open\command "" '"$INSTDIR\eMule.exe" "%1"'
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\.emulecollection "" "eMule"
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\eMule "" "eMule Collection File"
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\eMule\shell "" open
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\eMule\DefaultIcon "" $INSTDIR\eMule.exe
WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Classes\eMule\shell\open\command "" '"$INSTDIR\eMule.exe" "%1"'
DeleteRegKey HKCR "eMule"
WriteRegStr HKEY_CLASSES_ROOT eMule "" "eMule Collection"
WriteRegStr HKEY_CLASSES_ROOT eMule\shell "" open
WriteRegStr HKEY_CLASSES_ROOT eMule\DefaultIcon "" $INSTDIR\eMule.exe,1
WriteRegStr HKEY_CLASSES_ROOT eMule\shell\open\command "" '"$INSTDIR\eMule.exe" "%1"'
SectionEnd
SectionGroup $(sec_shortcuts) sec_shortcuts
Section /o Desktop SEC0001
SectionIn 1
SetShellVarContext all
SetOutPath $DESKTOP
CreateShortcut "$DESKTOP\Neo Mule.lnk" $INSTDIR\emule.exe
WriteRegStr HKLM "${REGKEY}\Components" Desktop 1
SectionEnd
Section /o Quicklaunchbar SEC0002
SectionIn 1
SetShellVarContext all
SetOutPath $QUICKLAUNCH
CreateShortcut "$QUICKLAUNCH\Neo Mule.lnk" $INSTDIR\emule.exe
WriteRegStr HKLM "${REGKEY}\Components" Quicklaunchbar 1
SectionEnd
SectionGroupEnd
SectionGroup $(sec_extras) sec_extras
Section "antiLeech DLP v21" SEC0003
SectionIn 1 2
SetShellVarContext all
SetOutPath $INSTDIR
SetOverwrite on
File "${NSISDIR}\config\antiLeech.dll.new"
WriteRegStr HKLM "${REGKEY}\Components" "antiLeech DLP" 1
SectionEnd
Section "MediaInfo v0.7.0.3" SEC0004
SectionIn 1 2
SetShellVarContext all
SetOutPath $INSTDIR
SetOverwrite on
File "${NSISDIR}\MediaInfo.dll"
WriteRegStr HKLM "${REGKEY}\Components" "MediaInfo" 1
SectionEnd
Section "unrar v3.60.100.215" SEC0005
SectionIn 1 2
SetShellVarContext all
SetOutPath $INSTDIR
SetOverwrite on
File "${NSISDIR}\unrar.dll"
WriteRegStr HKLM "${REGKEY}\Components" "unrar" 1
SectionEnd
Section "Skin Template" SEC0011
SectionIn 1 2
SetShellVarContext all
SetOutPath $INSTDIR
SetOverwrite off
File "${NSISDIR}\Template.eMuleSkin.ini"
WriteRegStr HKLM "${REGKEY}\Components" "Template.eMuleSkin" 1
SectionEnd
Section "Web Services" SEC0012
SectionIn 1 2
SetShellVarContext all
SetOutPath $INSTDIR\config
SetOverwrite off
File "${NSISDIR}\config\webservices.dat"
WriteRegStr HKLM "${REGKEY}\Components" "Web Services" 1
SectionEnd
SectionGroupEnd
SectionGroup $(sec_languages) sec_languages
Section $(Eng_SEC0010) Eng_SEC0010
SectionIn 1 2 3 RO
SectionEnd
Section $(De_SEC0006) De_SEC0006
SectionIn 1
SetShellVarContext all
SetOutPath $INSTDIR\lang
SetOverwrite on
File "${NSISDIR}\lang\de_DE.dll"
WriteRegStr HKLM "${REGKEY}\Components" Deutsch 1
SectionEnd
SectionGroupEnd
SectionGroup $(sec_help) sec_help
Section /o $(DESC_lang_eng) SecHelpEng
SectionIn 1
SetShellVarContext all
SetOutPath $INSTDIR
SetOverwrite on
File "${NSISDIR}\eMule.chm"
WriteRegStr HKLM "${REGKEY}\Components" English 1
SectionEnd
Section /o $(DESC_lang_de) SecHelpDe
SectionIn 1
SetShellVarContext all
SetOutPath $INSTDIR
SetOverwrite on
File "${NSISDIR}\eMule.1031.chm"
WriteRegStr HKLM "${REGKEY}\Components" German 1
SectionEnd
SectionGroupEnd
Section -post SEC0009
SetShellVarContext all
WriteRegStr HKLM "${REGKEY}" Path $INSTDIR
WriteUninstaller $INSTDIR\uninstall.exe
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
SetOutPath $SMPROGRAMS\$StartMenuGroup
CreateShortCut "$SMPROGRAMS\$StartMenuGroup\Neo Mule.lnk" "$INSTDIR\eMule.exe"
WriteINIStr "$SMPROGRAMS\$StartMenuGroup\Neo Mule Homepage.url" "InternetShortcut" "URL" "http://neomule.sf.net"
WriteINIStr "$SMPROGRAMS\$StartMenuGroup\Neo Mule Forum.url" "InternetShortcut" "URL" "http://eselfarm.info/efarm/board.php?boardid=277"
CreateShortCut "$SMPROGRAMS\$StartMenuGroup\TheDir.lnk" "$INSTDIR\" "" "" 0 SW_SHOWMAXIMIZED CONTROL|SHIFT|Z
CreateShortcut "$SMPROGRAMS\$StartMenuGroup\$(^UninstallLink).lnk" $INSTDIR\uninstall.exe
!insertmacro MUI_STARTMENU_WRITE_END
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "${VERSION}"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Publisher "${COMPANY}"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\emule.exe
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe
WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1
WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1
SectionEnd
# Macro for selecting uninstaller sections
!macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID
Push $R0
ReadRegStr $R0 HKLM "${REGKEY}\Components" "${SECTION_NAME}"
StrCmp $R0 1 0 next${UNSECTION_ID}
!insertmacro SelectSection "${UNSECTION_ID}"
GoTo done${UNSECTION_ID}
next${UNSECTION_ID}:
!insertmacro UnselectSection "${UNSECTION_ID}"
done${UNSECTION_ID}:
Pop $R0
!macroend
# Uninstaller sections
Section /o un.$(DESC_lang_de) UNSEC0008
SetShellVarContext all
Delete /REBOOTOK $INSTDIR\eMule.1031.chm
DeleteRegValue HKLM "${REGKEY}\Components" German
SectionEnd
Section /o un.$(DESC_lang_eng) UNSEC0007
SetShellVarContext all
Delete /REBOOTOK $INSTDIR\eMule.chm
DeleteRegValue HKLM "${REGKEY}\Components" English
SectionEnd
Section /o un.$(De_SEC0006) UNSEC0006
SetShellVarContext all
Delete /REBOOTOK $INSTDIR\lang\de_DE.dll
DeleteRegValue HKLM "${REGKEY}\Components" Deutsch
SectionEnd
Section /o "un.Web Services" UNSEC0012
SetShellVarContext all
DeleteRegValue HKLM "${REGKEY}\Components" "Web Services"
SectionEnd
Section /o "un.Skin Template" UNSEC0011
SetShellVarContext all
DeleteRegValue HKLM "${REGKEY}\Components" "Template.eMuleSkin"
SectionEnd
Section /o "un.unrar v3.60.100.215" UNSEC0005
SetShellVarContext all
Delete /REBOOTOK $INSTDIR\unrar.dll
DeleteRegValue HKLM "${REGKEY}\Components" "unrar"
SectionEnd
Section /o "un.MediaInfo v0.7.0.3" UNSEC0004
SetShellVarContext all
Delete /REBOOTOK $INSTDIR\MediaInfo.dll
DeleteRegValue HKLM "${REGKEY}\Components" "MediaInfo"
SectionEnd
Section /o "un.antiLeech DLP v21" UNSEC0003
SetShellVarContext all
Delete /REBOOTOK $INSTDIR\antiLeech.dll.new
DeleteRegValue HKLM "${REGKEY}\Components" "antiLeech DLP"
SectionEnd
Section /o un.Quicklaunchbar UNSEC0002
SetShellVarContext all
Delete /REBOOTOK "$QUICKLAUNCH\Neo Mule.lnk"
DeleteRegValue HKLM "${REGKEY}\Components" Quicklaunchbar
SectionEnd
Section /o un.Desktop UNSEC0001
SetShellVarContext all
Delete /REBOOTOK "$DESKTOP\Neo Mule.lnk"
DeleteRegValue HKLM "${REGKEY}\Components" Desktop
SectionEnd
Section /o un.$(sec_main) UNSEC0000
SetShellVarContext all
Delete /REBOOTOK $INSTDIR\webserver\*
RmDir /REBOOTOK $INSTDIR\webserver
Delete /REBOOTOK $INSTDIR\config\webcaches.xml
Delete /REBOOTOK $INSTDIR\config\leechers.sig
Delete /REBOOTOK $INSTDIR\config\leechers.dat
Delete /REBOOTOK $INSTDIR\config\ip-to-country.csv
Delete /REBOOTOK $INSTDIR\config\eMule.tmpl
Delete /REBOOTOK "$INSTDIR\config\eMule Light.tmpl"
Delete /REBOOTOK $INSTDIR\config\dlp.sig
Delete /REBOOTOK $INSTDIR\config\dlp.dll
Delete /REBOOTOK $INSTDIR\config\countryflag.dll
Delete /REBOOTOK $INSTDIR\config\countryflag32.dll
Delete /REBOOTOK $INSTDIR\changelog.txt
Delete /REBOOTOK $INSTDIR\emule.exe
DeleteRegValue HKLM "${REGKEY}\Components" sec_main
SectionEnd
Section un.post UNSEC0009
SetShellVarContext all
DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Neo Mule.lnk"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Neo Mule Homepage.url"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Neo Mule Forum.url"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\TheDir.lnk"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\$(^UninstallLink).lnk"
Delete /REBOOTOK $INSTDIR\uninstall.exe
DeleteRegValue HKLM "${REGKEY}" StartMenuGroup
DeleteRegValue HKLM "${REGKEY}" Path
DeleteRegKey /IfEmpty HKLM "${REGKEY}\Components"
DeleteRegKey /IfEmpty HKLM "${REGKEY}"
RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup
RmDir /REBOOTOK $INSTDIR
SectionEnd
Section "Uninstall"
Delete "$INSTDIR\antiLeech.dll"
Delete "$INSTDIR\antiLeech.dll.new"
Delete "$INSTDIR\MediaInfo.dll"
Delete "$INSTDIR\unrar.dll"
Delete "$INSTDIR\*.chm"
Delete "$INSTDIR\*.old"
Delete "$INSTDIR\*.bak"
Delete "$INSTDIR\config\server_met"
Delete "$INSTDIR\config\*.bak"
Delete "$INSTDIR\config\*.old"
Delete "$INSTDIR\config\*.dll"
Delete "$INSTDIR\config\*.tmpl"
Delete "$INSTDIR\config\*.sig"
Delete "$INSTDIR\lang\*.dll"
SetShellVarContext all
RMDir "$INSTDIR\config"
RMDir "$INSTDIR\Incoming"
RMDir "$INSTDIR\lang"
RMDir "$INSTDIR\logs"
RMDir "$INSTDIR\skins"
RMDir "$INSTDIR\Temp"
SectionEnd
# Installer functions
Function .onInit
InitPluginsDir
Push $R1
File /oname=$PLUGINSDIR\spltmp.bmp "${NSISDIR}\Contrib\Graphics\Wizard\splash.bmp"
advsplash::show 1200 1000 1000 -1 $PLUGINSDIR\spltmp
Pop $R1
Pop $R1
!insertmacro MUI_LANGDLL_DISPLAY
FunctionEnd
;--------------------------------
;Descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${sec_main} $(DESC_sec_main)
!insertmacro MUI_DESCRIPTION_TEXT ${sec_link} $(DESC_sec_link)
!insertmacro MUI_DESCRIPTION_TEXT ${sec_shortcuts} $(DESC_sec_shortcuts)
!insertmacro MUI_DESCRIPTION_TEXT ${sec_languages} $(DESC_sec_languages)
!insertmacro MUI_DESCRIPTION_TEXT ${sec_extras} $(DESC_sec_extras)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC0003} "Argos antiLeech dynamic link library. http://xtreme-mod.net"
!insertmacro MUI_DESCRIPTION_TEXT ${SEC0004} "Library for read info about media files. http://mediainfo.sourceforge.net"
!insertmacro MUI_DESCRIPTION_TEXT ${SEC0005} "RAR decompression dynamic link library. http://rarlab.com"
!insertmacro MUI_DESCRIPTION_TEXT ${De_SEC0006} "German translation by Betatester/Team eselfarm."
!insertmacro MUI_DESCRIPTION_TEXT ${Eng_SEC0010} "Default language by David Xanatos. You can change the language setting any time in the Options » General tab."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC0011} "Template.eMuleSkin.ini to create and customize own skin (colors, icons...)."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC0012} "webservices.dat - Webservices Configuration File."
!insertmacro MUI_DESCRIPTION_TEXT ${sec_help} $(DESC_sec_help)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
## Unload the plugin.
Function .onGUIEnd
BrandingURL::Unload
FunctionEnd
;--------------------------------
# Uninstaller functions
Function un.onInit
ReadRegStr $INSTDIR HKLM "${REGKEY}" Path
ReadRegStr $StartMenuGroup HKLM "${REGKEY}" StartMenuGroup
!insertmacro MUI_UNGETLANGUAGE
!insertmacro SELECT_UNSECTION sec_main ${UNSEC0000}
!insertmacro SELECT_UNSECTION Desktop ${UNSEC0001}
!insertmacro SELECT_UNSECTION Quicklaunchbar ${UNSEC0002}
!insertmacro SELECT_UNSECTION "antiLeech DLP v21" ${UNSEC0003}
!insertmacro SELECT_UNSECTION "MediaInfo v0.7.0.3" ${UNSEC0004}
!insertmacro SELECT_UNSECTION "unrar v3.60.100.215" ${UNSEC0005}
!insertmacro SELECT_UNSECTION De_SEC0006 ${UNSEC0006}
!insertmacro SELECT_UNSECTION English ${UNSEC0007}
!insertmacro SELECT_UNSECTION German ${UNSEC0008}
!insertmacro SELECT_UNSECTION "Skin Template" ${UNSEC0011}
!insertmacro SELECT_UNSECTION "Web Services" ${UNSEC0012}
FunctionEnd
# Installer Language Strings
# TODO Update the Language Strings with the appropriate translations.
LangString ^UninstallLink ${LANG_ENGLISH} "Uninstall $(^Name)"
LangString ^UninstallLink ${LANG_GERMAN} "Uninstall $(^Name)"
LangString ^UninstallLink ${LANG_SPANISH} "Uninstall $(^Name)"
LangString ^UninstallLink ${LANG_FRENCH} "Uninstall $(^Name)"
LangString ^UninstallLink ${LANG_ITALIAN} "Uninstall $(^Name)"
LangString ^UninstallLink ${LANG_RUSSIAN} "Uninstall $(^Name)"
LangString ^UninstallLink ${LANG_PORTUGUESEBR} "Uninstall $(^Name)"
LangString ^UninstallLink ${LANG_DANISH} "Uninstall $(^Name)"

