Start of nsis plugin.
NOT YET FUNCTIONAL. Please help with it!!! git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@114191 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
80734acc8d
commit
27203f7c0c
5
nsis/.cvsignore
Normal file
5
nsis/.cvsignore
Normal file
@ -0,0 +1,5 @@
|
||||
target
|
||||
velocity.log
|
||||
maven.log
|
||||
.classpath
|
||||
.project
|
||||
61
nsis/plugin.jelly
Normal file
61
nsis/plugin.jelly
Normal file
@ -0,0 +1,61 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<project
|
||||
xmlns:j="jelly:core"
|
||||
xmlns:ant="jelly:ant"
|
||||
xmlns:dist="dist"
|
||||
xmlns:license="license"
|
||||
xmlns:util="jelly:util">
|
||||
|
||||
|
||||
<!--==================================================================-->
|
||||
<!-- Generate NSIS Instller.exe file -->
|
||||
<!--==================================================================-->
|
||||
<goal name="nsis"
|
||||
description="Generate NSIS Installer .exe"
|
||||
prereqs="nsis:installer">
|
||||
<ant:echo>FIXME: Not Finished</ant:echo>
|
||||
</goal>
|
||||
|
||||
<goal name="nsis:generate-project"
|
||||
description="Generate NSIS project.nsh file">
|
||||
|
||||
<j:set var="generatedFileName" value="${maven.build.dir}/project.nsh"/>
|
||||
|
||||
<ant:echo>Creating ${generatedFileName} ...</ant:echo>
|
||||
<j:file name="${generatedFileName}" prettyPrint="false" xmlns="dummy" omitXmlDeclaration="true" escapeText="false">
|
||||
<j:import file="${maven.nsis.project.template}" inherit="true"/>
|
||||
</j:file>
|
||||
|
||||
</goal>
|
||||
|
||||
<goal name="nsis:generate-setup"
|
||||
description="Generate NSIS .nsi file">
|
||||
|
||||
<j:set var="generatedFileName" value="${maven.build.dir}/setup.nsi"/>
|
||||
|
||||
<ant:echo>Creating ${generatedFileName} ...</ant:echo>
|
||||
<j:file name="${generatedFileName}" prettyPrint="false" xmlns="dummy" omitXmlDeclaration="true" escapeText="false">
|
||||
<j:import file="${maven.nsis.setup.template}" inherit="true"/>
|
||||
</j:file>
|
||||
|
||||
</goal>
|
||||
|
||||
|
||||
<!--==================================================================-->
|
||||
<!-- Generate NSIS .exe file -->
|
||||
<!--==================================================================-->
|
||||
<goal name="nsis:installer"
|
||||
description="Generate NSIS .exe file"
|
||||
prereqs="nsis:generate-project">
|
||||
|
||||
<j:set var="script" value="${maven.build.dir}/setup.nsi"/>
|
||||
|
||||
<!-- call makensis.exe with the setup.nsh file -->
|
||||
<ant:exec executable="${maven.nsis.exe}">
|
||||
<arg value="${script}"/>
|
||||
</ant:exec>
|
||||
</goal>
|
||||
|
||||
|
||||
</project>
|
||||
30
nsis/plugin.properties
Normal file
30
nsis/plugin.properties
Normal file
@ -0,0 +1,30 @@
|
||||
# -------------------------------------------------------------------
|
||||
# P L U G I N P R O P E R I E S
|
||||
# -------------------------------------------------------------------
|
||||
# NSIS plugin.
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# This is the jelly template used to create the project.nsh file
|
||||
#
|
||||
maven.nsis.project.template=${plugin.resources}/templates/project.jelly
|
||||
|
||||
#
|
||||
# This is the jelly template used to create the project.nsh file
|
||||
#
|
||||
maven.nsis.setup.template=${plugin.resources}/templates/setup.jelly
|
||||
|
||||
#
|
||||
# FIXME: Should be able to get this from the POM.
|
||||
#
|
||||
maven.nsis.license.text=This program is Licensed under The Apache Software License, Version 1.1.
|
||||
|
||||
#
|
||||
# location of makensis.exe
|
||||
#
|
||||
maven.nsis.exe=C:/Program Files/NSIS/makensis.exe
|
||||
|
||||
#
|
||||
# source of extra files for nsis
|
||||
#
|
||||
maven.nsis.src=${basedir}/src/nsis
|
||||
7
nsis/project.properties
Normal file
7
nsis/project.properties
Normal file
@ -0,0 +1,7 @@
|
||||
# -------------------------------------------------------------------
|
||||
# P R O J E C T P R O P E R T I E S
|
||||
# -------------------------------------------------------------------
|
||||
maven.xdoc.date=left
|
||||
maven.xdoc.version=${pom.currentVersion}
|
||||
maven.license.licenseFile=${basedir}/../LICENSE.txt
|
||||
|
||||
37
nsis/project.xml
Normal file
37
nsis/project.xml
Normal file
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project>
|
||||
<extend>../project.xml</extend>
|
||||
<pomVersion>3</pomVersion>
|
||||
<id>maven-nsis-plugin</id>
|
||||
<name>Maven NSIS Plug-in</name>
|
||||
<currentVersion>1.0-SNAPSHOT</currentVersion>
|
||||
<description>A plugin to generate Win32 installer programs using NSIS</description>
|
||||
<shortDescription>NSIS Plugin for Maven</shortDescription>
|
||||
<url>http://maven.apache.org/reference/plugins/nsis/</url>
|
||||
<siteDirectory>/www/maven.apache.org/reference/plugins/nsis/</siteDirectory>
|
||||
<repository>
|
||||
<connection>scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:maven-plugins/nsis/</connection>
|
||||
<url>http://cvs.apache.org/viewcvs/maven-plugins/nsis/</url>
|
||||
</repository>
|
||||
|
||||
<versions>
|
||||
<version>
|
||||
<id>1.0</id>
|
||||
<name>1.0</name>
|
||||
<tag>HEAD</tag>
|
||||
</version>
|
||||
</versions>
|
||||
|
||||
<developers>
|
||||
<developer>
|
||||
<name>dIon Gillard</name>
|
||||
<id>dion</id>
|
||||
<email>dion@multitask.com.au</email>
|
||||
<organization>Multitask Consulting</organization>
|
||||
<roles>
|
||||
<role>Java Developer</role>
|
||||
</roles>
|
||||
</developer>
|
||||
</developers>
|
||||
</project>
|
||||
10
nsis/src/plugin-resources/BrandingImage.nsh
Normal file
10
nsis/src/plugin-resources/BrandingImage.nsh
Normal file
@ -0,0 +1,10 @@
|
||||
; macro for the image on the install screen
|
||||
!macro BrandingImage IMAGE PARMS
|
||||
Push $0
|
||||
GetTempFileName $0
|
||||
File /oname=$0 "${IMAGE}"
|
||||
SetBrandingImage ${PARMS} $0
|
||||
Delete $0
|
||||
Pop $0
|
||||
!macroend
|
||||
|
||||
139
nsis/src/plugin-resources/Environment.nsh
Normal file
139
nsis/src/plugin-resources/Environment.nsh
Normal file
@ -0,0 +1,139 @@
|
||||
;
|
||||
; From NSISArchives http://nsis.sourceforge.net/archive/nsisweb.php?page=156&instances=0,11
|
||||
;
|
||||
!include WinMessages.nsh
|
||||
|
||||
!ifdef ALL_USERS
|
||||
!define WriteEnvStr_RegKey \
|
||||
'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
|
||||
!else
|
||||
!define WriteEnvStr_RegKey 'HKCU "Environment"'
|
||||
!endif
|
||||
|
||||
#
|
||||
# WriteEnvStr - Writes an environment variable
|
||||
# Note: Win9x systems requires reboot
|
||||
#
|
||||
# Example:
|
||||
# Push "HOMEDIR" # name
|
||||
# Push "C:\New Home Dir\" # value
|
||||
# Call WriteEnvStr
|
||||
#
|
||||
Function WriteEnvStr
|
||||
Exch $1 ; $1 has environment variable value
|
||||
Exch
|
||||
Exch $0 ; $0 has environment variable name
|
||||
Push $2
|
||||
|
||||
Call IsNT
|
||||
Pop $2
|
||||
StrCmp $2 1 WriteEnvStr_NT
|
||||
; Not on NT
|
||||
StrCpy $2 $WINDIR 2 ; Copy drive of windows (c:)
|
||||
FileOpen $2 "$2\autoexec.bat" a
|
||||
FileSeek $2 0 END
|
||||
FileWrite $2 "$\r$\nSET $0=$1$\r$\n"
|
||||
FileClose $2
|
||||
SetRebootFlag true
|
||||
Goto WriteEnvStr_done
|
||||
|
||||
WriteEnvStr_NT:
|
||||
WriteRegExpandStr ${WriteEnvStr_RegKey} $0 $1
|
||||
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} \
|
||||
0 "STR:Environment" /TIMEOUT=5000
|
||||
|
||||
WriteEnvStr_done:
|
||||
Pop $2
|
||||
Pop $1
|
||||
Pop $0
|
||||
FunctionEnd
|
||||
|
||||
#
|
||||
# un.DeleteEnvStr - Removes an environment variable
|
||||
# Note: Win9x systems requires reboot
|
||||
#
|
||||
# Example:
|
||||
# Push "HOMEDIR" # name
|
||||
# Call un.DeleteEnvStr
|
||||
#
|
||||
Function un.DeleteEnvStr
|
||||
Exch $0 ; $0 now has the name of the variable
|
||||
Push $1
|
||||
Push $2
|
||||
Push $3
|
||||
Push $4
|
||||
Push $5
|
||||
|
||||
Call un.IsNT
|
||||
Pop $1
|
||||
StrCmp $1 1 DeleteEnvStr_NT
|
||||
; Not on NT
|
||||
StrCpy $1 $WINDIR 2
|
||||
FileOpen $1 "$1\autoexec.bat" r
|
||||
GetTempFileName $4
|
||||
FileOpen $2 $4 w
|
||||
StrCpy $0 "SET $0="
|
||||
SetRebootFlag true
|
||||
|
||||
DeleteEnvStr_dosLoop:
|
||||
FileRead $1 $3
|
||||
StrLen $5 $0
|
||||
StrCpy $5 $3 $5
|
||||
StrCmp $5 $0 DeleteEnvStr_dosLoop
|
||||
StrCmp $5 "" DeleteEnvStr_dosLoopEnd
|
||||
FileWrite $2 $3
|
||||
Goto DeleteEnvStr_dosLoop
|
||||
|
||||
DeleteEnvStr_dosLoopEnd:
|
||||
FileClose $2
|
||||
FileClose $1
|
||||
StrCpy $1 $WINDIR 2
|
||||
Delete "$1\autoexec.bat"
|
||||
CopyFiles /SILENT $4 "$1\autoexec.bat"
|
||||
Delete $4
|
||||
Goto DeleteEnvStr_done
|
||||
|
||||
DeleteEnvStr_NT:
|
||||
DeleteRegValue ${WriteEnvStr_RegKey} $0
|
||||
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} \
|
||||
0 "STR:Environment" /TIMEOUT=5000
|
||||
|
||||
DeleteEnvStr_done:
|
||||
Pop $5
|
||||
Pop $4
|
||||
Pop $3
|
||||
Pop $2
|
||||
Pop $1
|
||||
Pop $0
|
||||
FunctionEnd
|
||||
|
||||
#
|
||||
# [un.]IsNT - Pushes 1 if running on NT, 0 if not
|
||||
#
|
||||
# Example:
|
||||
# Call IsNT
|
||||
# Pop $0
|
||||
# StrCmp $0 1 +3
|
||||
# MessageBox MB_OK "Not running on NT!"
|
||||
# Goto +2
|
||||
# MessageBox MB_OK "Running on NT!"
|
||||
#
|
||||
!macro IsNT UN
|
||||
Function ${UN}IsNT
|
||||
Push $0
|
||||
ReadRegStr $0 HKLM \
|
||||
"SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
|
||||
StrCmp $0 "" 0 IsNT_yes
|
||||
; we are not NT.
|
||||
Pop $0
|
||||
Push 0
|
||||
Return
|
||||
|
||||
IsNT_yes:
|
||||
; NT!!!
|
||||
Pop $0
|
||||
Push 1
|
||||
FunctionEnd
|
||||
!macroend
|
||||
!insertmacro IsNT ""
|
||||
!insertmacro IsNT "un."
|
||||
38
nsis/src/plugin-resources/GetJRE.nsh
Normal file
38
nsis/src/plugin-resources/GetJRE.nsh
Normal file
@ -0,0 +1,38 @@
|
||||
;
|
||||
; Found in the NSIS Archives http://nsis.sourceforge.net/archive/nsisweb.php?page=326&instances=0,64
|
||||
;
|
||||
Function GetJRE
|
||||
;
|
||||
; Find JRE (Java.exe)
|
||||
; 1 - in .\jre directory (JRE Installed with application)
|
||||
; 2 - in JAVA_HOME environment variable
|
||||
; 3 - in the registry
|
||||
; 4 - assume java.exe in current dir or PATH
|
||||
|
||||
Push $R0
|
||||
Push $R1
|
||||
|
||||
ClearErrors
|
||||
StrCpy $R0 "$EXEDIR\jre\bin\java.exe"
|
||||
IfFileExists $R0 JreFound
|
||||
StrCpy $R0 ""
|
||||
|
||||
ClearErrors
|
||||
ReadEnvStr $R0 "JAVA_HOME"
|
||||
StrCpy $R0 "$R0\bin\java.exe"
|
||||
IfErrors 0 JreFound
|
||||
|
||||
ClearErrors
|
||||
ReadRegStr $R1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment"
|
||||
"CurrentVersion"
|
||||
ReadRegStr $R0 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$R1"
|
||||
"JavaHome"
|
||||
StrCpy $R0 "$R0\bin\java.exe"
|
||||
|
||||
IfErrors 0 JreFound
|
||||
StrCpy $R0 "java.exe"
|
||||
|
||||
JreFound:
|
||||
Pop $R1
|
||||
Exch $R0
|
||||
FunctionEnd
|
||||
11
nsis/src/plugin-resources/JDK.nsh
Normal file
11
nsis/src/plugin-resources/JDK.nsh
Normal file
@ -0,0 +1,11 @@
|
||||
Function AssertJavaHome
|
||||
ClearErrors
|
||||
ReadEnvStr $0 "JAVA_HOME"
|
||||
|
||||
IfErrors 0 Found
|
||||
ClearErrors
|
||||
MessageBox MB_OK|MB_ICONSTOP "The JAVA_HOME environment variable must be set. Please set JAVA_HOME to the location of your JDK and try installing again"
|
||||
Abort
|
||||
|
||||
Found:
|
||||
FunctionEnd
|
||||
30
nsis/src/plugin-resources/templates/project.jelly
Normal file
30
nsis/src/plugin-resources/templates/project.jelly
Normal file
@ -0,0 +1,30 @@
|
||||
<j:jelly
|
||||
xmlns:ant="jelly:ant"
|
||||
xmlns:j="jelly:core"
|
||||
xmlns:maven="jelly:maven"
|
||||
xmlns:util="jelly:util"
|
||||
xmlns="dummy">
|
||||
|
||||
<maven:makeAbsolutePath var="license" basedir="${basedir}"
|
||||
path="${pom.getPluginContext('maven-license-plugin').getVariable('maven.license.licenseFile')}"/>
|
||||
<maven:makeAbsolutePath var="build" basedir="${basedir}" path="${maven.build.dir}"/>
|
||||
<maven:makeAbsolutePath var="dist" basedir="${basedir}" path="${maven.dist.bin.assembly.dir}"/>
|
||||
<ant:tstamp />
|
||||
; template for project details
|
||||
; generated by ${user.name} from project.xml version ${pom.currentVersion}
|
||||
; on date ${TODAY}, time ${TSTAMP}
|
||||
|
||||
!define ORGANIZATION "${pom.organization}"
|
||||
!define PROJECT_BUILD_DIR "${build}"
|
||||
!define PROJECT_FINAL_NAME "${maven.final.name}"
|
||||
!define PROJECT_LICENSE_FILE "${license}"
|
||||
!define PROJECT_LICENSE_TEXT "${maven.nsis.license.text}"
|
||||
!define PROJECT_NAME "${pom.name}"
|
||||
!define PROJECT_REG_KEY "SOFTWARE\${pom.organization}\${pom.name}\${pom.currentVersion}"
|
||||
!define PROJECT_REG_UNINSTALL_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${pom.name} ${pom.version}"
|
||||
!define PROJECT_STARTMENU_FOLDER "$$SMPROGRAMS\${pom.organization}\${pom.name} ${pom.currentVersion}"
|
||||
!define PROJECT_VERSION "${pom.currentVersion}"
|
||||
!define PROJECT_DIST_DIR "${maven.dist.bin.assembly.dir}"
|
||||
|
||||
|
||||
</j:jelly>
|
||||
157
nsis/src/plugin-resources/templates/setup.jelly
Normal file
157
nsis/src/plugin-resources/templates/setup.jelly
Normal file
@ -0,0 +1,157 @@
|
||||
<j:jelly
|
||||
xmlns:ant="jelly:ant"
|
||||
xmlns:j="jelly:core"
|
||||
xmlns:maven="jelly:maven"
|
||||
xmlns:util="jelly:util"
|
||||
xmlns="dummy">
|
||||
|
||||
|
||||
; Author Kristen Gillard
|
||||
; Author Dion Gillard
|
||||
; Installation Script for Maven
|
||||
; http://maven.apache.org/
|
||||
|
||||
; add directories for the source if it exists, and the plugin
|
||||
<util:available file="${maven.nsis.src}">
|
||||
; add project source onto the include list
|
||||
!addincludedir "${maven.nsis.src}"
|
||||
</util:available>
|
||||
!addincludedir "${maven.build.dir}"
|
||||
!addincludedir "${plugin.resources}"
|
||||
|
||||
; macro for the image on the install screen
|
||||
!include "BrandingImage.nsh"
|
||||
!include "JDK.nsh"
|
||||
!include "Environment.nsh"
|
||||
|
||||
; include project specific details
|
||||
!include "project.nsh"
|
||||
|
||||
; Do a Cyclic Redundancy Check to make sure the installer is not corrupt
|
||||
CRCCheck on
|
||||
|
||||
; The name of the installer
|
||||
Name "${PROJECT_NAME}"
|
||||
|
||||
; Maven Setup executable
|
||||
OutFile "${PROJECT_BUILD_DIR}\${PROJECT_FINAL_NAME}.exe"
|
||||
|
||||
; Adds an XP manifest to the installer
|
||||
XPStyle on
|
||||
|
||||
; branding with maven logo
|
||||
AddBrandingImage left 70|267
|
||||
|
||||
; Sets the font of the installer
|
||||
SetFont "Arial" 8
|
||||
|
||||
; License Information
|
||||
LicenseText "This program is Licensed under The Apache Software License, Version 1.1."
|
||||
LicenseData "${PROJECT_LICENSE_FILE}"
|
||||
|
||||
; The default installation directory
|
||||
InstallDir "$PROGRAMFILES\${ORGANIZATION}\${PROJECT_NAME} ${PROJECT_VERSION}"
|
||||
; Registry key to check for directory (so if you upgrade, it will
|
||||
; overwrite the old one automatically)
|
||||
InstallDirRegKey HKLM "${PROJECT_REG_KEY}" "Install_Dir"
|
||||
|
||||
; The text to prompt the user to enter a directory
|
||||
ComponentText "This will install ${PROJECT_NAME} on your computer."
|
||||
; The text to prompt the user to enter a directory
|
||||
DirText "${PROJECT_NAME} Home Directory"
|
||||
|
||||
; -------------------------------------------------------------- Package up the files to be installed
|
||||
Section "${PROJECT_NAME} v${PROJECT_VERSION} Binaries"
|
||||
; Set output path to the installation directory.
|
||||
SetOutPath $INSTDIR
|
||||
; Put files and directories there
|
||||
; the script will be run from a directory below Maven
|
||||
File /r "${PROJECT_DIST_DIR}\*.*"
|
||||
|
||||
; Write the installation path into the registry
|
||||
WriteRegStr HKLM "${PROJECT_REG_KEY}" "Install_Dir" "$INSTDIR"
|
||||
|
||||
; Write the environment variables to the Registry
|
||||
; ${MAVEN_HOME}
|
||||
Push "MAVEN_HOME"
|
||||
Push "$INSTDIR"
|
||||
Call WriteEnvStr
|
||||
|
||||
; TODO - Add MAVEN_HOME to the path
|
||||
|
||||
; TODO Prompt and write other environment variables to the Registry
|
||||
; WriteRegStr HKCU "Environment" "MAVEN_LOCAL_HOME" "$INSTDIR"
|
||||
|
||||
; Write the uninstall keys for Windows
|
||||
WriteRegStr HKLM "${PROJECT_REG_UNINSTALL_KEY}" "DisplayName" "${PROJECT_NAME} ${PROJECT_VERSION} (remove only)"
|
||||
WriteRegStr HKLM "${PROJECT_REG_UNINSTALL_KEY}" "UninstallString" '"$INSTDIR\Uninst.exe"'
|
||||
SectionEnd
|
||||
|
||||
; -------------------------------------------------------------- Create Shortcuts
|
||||
Section "Create Start Menu Shortcut(s)"
|
||||
; it would be nice to get all this from navigation.xml :-)
|
||||
CreateDirectory "${PROJECT_STARTMENU_FOLDER}"
|
||||
CreateShortCut "${PROJECT_STARTMENU_FOLDER}\Maven.lnk" "$INSTDIR\bin\maven.bat" "" "$INSTDIR\bin\maven.bat" 0
|
||||
CreateShortCut "${PROJECT_STARTMENU_FOLDER}\Install Maven Repository.lnk" "$INSTDIR\bin\install_repo.bat" "" "$INSTDIR\install_repo.bat" 0
|
||||
CreateShortCut "${PROJECT_STARTMENU_FOLDER}\Uninstall.lnk" "$INSTDIR\Uninst.exe" "" "$INSTDIR\Uninst.exe" 0
|
||||
CreateShortCut "${PROJECT_STARTMENU_FOLDER}\Homepage.lnk" "http://maven.apache.org/"
|
||||
CreateShortCut "${PROJECT_STARTMENU_FOLDER}\User Guide.lnk" "http://maven.apache.org/reference/user-guide.html"
|
||||
CreateShortCut "${PROJECT_STARTMENU_FOLDER}\Core Plugins.lnk" "http://maven.apache.org/reference/plugins/core-plugins.html"
|
||||
CreateShortCut "${PROJECT_STARTMENU_FOLDER}\Optional Plugins.lnk" "http://maven.apache.org/reference/plugins/optional/optional.html"
|
||||
CreateShortCut "${PROJECT_STARTMENU_FOLDER}\Reference.lnk" "http://maven.apache.org/reference/index.html"
|
||||
CreateShortCut "${PROJECT_STARTMENU_FOLDER}\Report a Bug.lnk" "http://jira.codehaus.org/secure/BrowseProject.jspa?id=10030"
|
||||
CreateShortCut "${PROJECT_STARTMENU_FOLDER}\Frequently Asked Questions.lnk" "http://maven.apache.org/faq.html"
|
||||
SectionEnd
|
||||
|
||||
; OPTIONAL Desktop Shortcut
|
||||
; Section "Create Desktop Shortcut"
|
||||
; CreateShortCut "$DESKTOP\Maven.lnk" "$INSTDIR\bin\maven.bat" "" "$INSTDIR\bin\maven.bat"
|
||||
;SectionEnd
|
||||
|
||||
; -------------------------------------------------------------- Section to Install the Uninstaller
|
||||
Section "Install Uninstaller"
|
||||
; write the uninstaller to the installation directory
|
||||
WriteUninstaller "$INSTDIR\Uninst.exe"
|
||||
SectionEnd
|
||||
|
||||
; -------------------------------------------------------------- Maven Uninstaller
|
||||
Section "Uninstall"
|
||||
; remove registry keys
|
||||
DeleteRegKey HKLM "${PROJECT_REG_UNINSTALL_KEY}"
|
||||
DeleteRegKey HKLM "${PROJECT_REG_KEY}"
|
||||
|
||||
; Remove ${MAVEN_HOME}
|
||||
Push "MAVEN_HOME"
|
||||
Call un.DeleteEnvStr
|
||||
|
||||
; remove files
|
||||
Delete $INSTDIR\*.*
|
||||
|
||||
; MUST REMOVE UNINSTALLER, too
|
||||
Delete $INSTDIR\Uninst.exe
|
||||
|
||||
; remove shortcuts, if any.
|
||||
Delete "${PROJECT_STARTMENU_FOLDER}\*.*"
|
||||
RMDir "${PROJECT_STARTMENU_FOLDER}"
|
||||
; Delete "$DESKTOP\Maven.lnk"
|
||||
; Recursively remove files and directories used
|
||||
; this should also take care of the installer
|
||||
RMDir /r "$INSTDIR"
|
||||
; MessageBox MB_OK|MB_ICONEXCLAMATION "Maven has been 'Uninstalled'"
|
||||
SectionEnd
|
||||
|
||||
; -------------------------------------------------------------- Add Images to the Installer / UnInstaller
|
||||
Function .onGUIInit
|
||||
!insertmacro BrandingImage "maven.bmp" ""
|
||||
; TODO Check for a JAVA_HOME environment variable
|
||||
Call AssertJavaHome
|
||||
|
||||
FunctionEnd
|
||||
|
||||
; add the maven logo to the un-installer
|
||||
Function un.onGUIInit
|
||||
!insertmacro BrandingImage "maven.bmp" ""
|
||||
FunctionEnd
|
||||
|
||||
; -------------------------------------------------------------- End of File
|
||||
</j:jelly>
|
||||
Loading…
x
Reference in New Issue
Block a user