193 lines
7.9 KiB
Plaintext
193 lines
7.9 KiB
Plaintext
# This installs two files, minikube.exe and logo.ico, creates a start menu shortcut, builds an uninstaller, and
|
|
# adds uninstall information to the registry for Add/Remove Programs
|
|
|
|
# To get started, put this script into a folder with the two files (minikube.exe, logo.ico, and LICENSE.txt -
|
|
# You'll have to create these yourself) and run makensis on it
|
|
|
|
# If you change the names "minikube.exe", "logo.ico", or "LICENSE.txt" you should do a search and replace - they
|
|
# show up in a few places.
|
|
# All the other settings can be tweaked by editing the !defines at the top of this script
|
|
# Unicode true # This command is not available in 2.46 which is on apt-get. Debating how to proceed
|
|
!define APPNAME "Minikube"
|
|
!define COMPANYNAME "Kubernetes"
|
|
!define DESCRIPTION "A Local Kubernetes Development Environment"
|
|
# These three must be integers
|
|
!define VERSIONMAJOR --VERSION_MAJOR--
|
|
!define VERSIONMINOR --VERSION_MINOR--
|
|
!define VERSIONBUILD --VERSION_BUILD--
|
|
# These will be displayed by the "Click here for support information" link in "Add/Remove Programs"
|
|
# It is possible to use "mailto:" links in here to open the email client
|
|
!define HELPURL "https://github.com/kubernetes/minikube" # "Support Information" link
|
|
!define UPDATEURL "https://github.com/kubernetes/minikube/releases" # "Product Updates" link
|
|
!define ABOUTURL "https://github.com/kubernetes/minikube" # "Publisher" link
|
|
# This is the size (in kB) of all the files copied into "Program Files"
|
|
!define INSTALLSIZE --INSTALL_SIZE--
|
|
|
|
RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on)
|
|
|
|
InstallDir "$PROGRAMFILES64\${COMPANYNAME}\${APPNAME}"
|
|
!define UNINSTALLDIR "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}"
|
|
BrandingText " "
|
|
|
|
# rtf or txt file - remember if it is txt, it must be in the DOS text format (\r\n)
|
|
# This will be in the installer/uninstaller's title bar
|
|
Name "${COMPANYNAME} - ${APPNAME}"
|
|
Icon "logo.ico"
|
|
OutFile "minikube-installer.exe"
|
|
|
|
!include "LogicLib.nsh"
|
|
!include "MUI2.nsh" ; Modern UI
|
|
|
|
!define MUI_ICON "logo.ico"
|
|
!define MUI_UNICON "logo.ico"
|
|
!define MUI_WELCOMEFINISHPAGE_BITMAP "logo.bmp"
|
|
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "logo.bmp"
|
|
!define MUI_HEADERIMAGE_BITMAP "logo.bmp"
|
|
!define MUI_FINISHPAGE_NOAUTOCLOSE
|
|
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
|
|
|
|
!insertmacro MUI_PAGE_WELCOME
|
|
!insertmacro MUI_PAGE_LICENSE "LICENSE.txt"
|
|
!insertmacro MUI_PAGE_DIRECTORY
|
|
!insertmacro MUI_PAGE_INSTFILES
|
|
!insertmacro MUI_PAGE_FINISH
|
|
|
|
!insertmacro MUI_UNPAGE_WELCOME
|
|
!insertmacro MUI_UNPAGE_CONFIRM
|
|
!insertmacro MUI_UNPAGE_INSTFILES
|
|
!insertmacro MUI_UNPAGE_FINISH
|
|
|
|
; Set languages (first is default language)
|
|
;!insertmacro MUI_LANGUAGE "English"
|
|
!define MUI_LANGDLL_ALLLANGUAGES
|
|
;Languages
|
|
|
|
!insertmacro MUI_LANGUAGE "English"
|
|
!insertmacro MUI_LANGUAGE "French"
|
|
!insertmacro MUI_LANGUAGE "TradChinese"
|
|
!insertmacro MUI_LANGUAGE "Spanish"
|
|
!insertmacro MUI_LANGUAGE "Hungarian"
|
|
!insertmacro MUI_LANGUAGE "Russian"
|
|
!insertmacro MUI_LANGUAGE "German"
|
|
!insertmacro MUI_LANGUAGE "Dutch"
|
|
!insertmacro MUI_LANGUAGE "SimpChinese"
|
|
!insertmacro MUI_LANGUAGE "Italian"
|
|
!insertmacro MUI_LANGUAGE "Danish"
|
|
!insertmacro MUI_LANGUAGE "Polish"
|
|
!insertmacro MUI_LANGUAGE "Czech"
|
|
!insertmacro MUI_LANGUAGE "Slovenian"
|
|
!insertmacro MUI_LANGUAGE "Slovak"
|
|
!insertmacro MUI_LANGUAGE "Swedish"
|
|
!insertmacro MUI_LANGUAGE "Norwegian"
|
|
!insertmacro MUI_LANGUAGE "PortugueseBR"
|
|
!insertmacro MUI_LANGUAGE "Ukrainian"
|
|
!insertmacro MUI_LANGUAGE "Turkish"
|
|
!insertmacro MUI_LANGUAGE "Catalan"
|
|
!insertmacro MUI_LANGUAGE "Arabic"
|
|
!insertmacro MUI_LANGUAGE "Lithuanian"
|
|
!insertmacro MUI_LANGUAGE "Finnish"
|
|
!insertmacro MUI_LANGUAGE "Greek"
|
|
!insertmacro MUI_LANGUAGE "Korean"
|
|
!insertmacro MUI_LANGUAGE "Hebrew"
|
|
!insertmacro MUI_LANGUAGE "Portuguese"
|
|
!insertmacro MUI_LANGUAGE "Farsi"
|
|
!insertmacro MUI_LANGUAGE "Bulgarian"
|
|
!insertmacro MUI_LANGUAGE "Indonesian"
|
|
!insertmacro MUI_LANGUAGE "Japanese"
|
|
!insertmacro MUI_LANGUAGE "Croatian"
|
|
!insertmacro MUI_LANGUAGE "Serbian"
|
|
!insertmacro MUI_LANGUAGE "Thai"
|
|
!insertmacro MUI_LANGUAGE "NorwegianNynorsk"
|
|
!insertmacro MUI_LANGUAGE "Belarusian"
|
|
!insertmacro MUI_LANGUAGE "Albanian"
|
|
!insertmacro MUI_LANGUAGE "Malay"
|
|
!insertmacro MUI_LANGUAGE "Galician"
|
|
!insertmacro MUI_LANGUAGE "Basque"
|
|
!insertmacro MUI_LANGUAGE "Luxembourgish"
|
|
!insertmacro MUI_LANGUAGE "Afrikaans"
|
|
!insertmacro MUI_LANGUAGE "Uzbek"
|
|
!insertmacro MUI_LANGUAGE "Macedonian"
|
|
!insertmacro MUI_LANGUAGE "Latvian"
|
|
!insertmacro MUI_LANGUAGE "Bosnian"
|
|
!insertmacro MUI_LANGUAGE "Mongolian"
|
|
!insertmacro MUI_LANGUAGE "Estonian"
|
|
|
|
!insertmacro MUI_RESERVEFILE_LANGDLL
|
|
|
|
Function .onInit
|
|
|
|
!insertmacro MUI_LANGDLL_DISPLAY
|
|
|
|
FunctionEnd
|
|
|
|
Section "Install"
|
|
# Files for the install directory - to build the installer, these should be in the same directory as the install script (this file)
|
|
SetOutPath $INSTDIR
|
|
# Files added here should be removed by the uninstaller (see section "uninstall")
|
|
File "minikube.exe"
|
|
File "logo.ico"
|
|
File "update_path.ps1"
|
|
# Add any other files for the install directory (license files, app data, etc) here
|
|
|
|
# Uninstaller - See function un.onInit and section "uninstall" for configuration
|
|
WriteUninstaller "$INSTDIR\uninstall.exe"
|
|
|
|
# Start Menu
|
|
CreateDirectory "$SMPROGRAMS\${COMPANYNAME}"
|
|
CreateShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\minikube.exe" "" "$INSTDIR\logo.ico"
|
|
|
|
# Registry information for add/remove programs
|
|
WriteRegStr HKLM "${UNINSTALLDIR}" "DisplayName" "${COMPANYNAME} - ${APPNAME} - ${DESCRIPTION}"
|
|
WriteRegStr HKLM "${UNINSTALLDIR}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
|
|
WriteRegStr HKLM "${UNINSTALLDIR}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
|
|
WriteRegStr HKLM "${UNINSTALLDIR}" "InstallLocation" "$\"$INSTDIR$\""
|
|
WriteRegStr HKLM "${UNINSTALLDIR}" "DisplayIcon" "$\"$INSTDIR\logo.ico$\""
|
|
WriteRegStr HKLM "${UNINSTALLDIR}" "Publisher" "$\"${COMPANYNAME}$\""
|
|
WriteRegStr HKLM "${UNINSTALLDIR}" "HelpLink" "$\"${HELPURL}$\""
|
|
WriteRegStr HKLM "${UNINSTALLDIR}" "URLUpdateInfo" "$\"${UPDATEURL}$\""
|
|
WriteRegStr HKLM "${UNINSTALLDIR}" "URLInfoAbout" "$\"${ABOUTURL}$\""
|
|
WriteRegStr HKLM "${UNINSTALLDIR}" "DisplayVersion" "$\"${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}$\""
|
|
WriteRegDWORD HKLM "${UNINSTALLDIR}" "VersionMajor" ${VERSIONMAJOR}
|
|
WriteRegDWORD HKLM "${UNINSTALLDIR}" "VersionMinor" ${VERSIONMINOR}
|
|
|
|
# There is no option for modifying or repairing the install
|
|
WriteRegDWORD HKLM "${UNINSTALLDIR}" "NoModify" 1
|
|
WriteRegDWORD HKLM "${UNINSTALLDIR}" "NoRepair" 1
|
|
|
|
# Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size
|
|
WriteRegDWORD HKLM "${UNINSTALLDIR}" "EstimatedSize" ${INSTALLSIZE}
|
|
|
|
# Add installed executable to PATH
|
|
# Cannot uset EnvVarUpdate since the path can be too long
|
|
# this is explicitly warned in the documentation page
|
|
# http://nsis.sourceforge.net/Environmental_Variables:_append,_prepend,_and_remove_entries
|
|
nsExec::ExecToLog 'powershell -ExecutionPolicy Bypass -WindowStyle Hidden -File "$INSTDIR\update_path.ps1" -Add -Path "$INSTDIR"'
|
|
|
|
SectionEnd
|
|
|
|
Section "Uninstall"
|
|
|
|
# Remove Start Menu launcher
|
|
Delete /REBOOTOK "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk"
|
|
# Try to remove the Start Menu folder - this will only happen if it is empty
|
|
RmDir /REBOOTOK "$SMPROGRAMS\${COMPANYNAME}"
|
|
|
|
# Remove uninstalled executable from PATH
|
|
nsExec::ExecToLog 'powershell -ExecutionPolicy Bypass -WindowStyle Hidden -File "$INSTDIR\update_path.ps1" -Remove -Path "$INSTDIR"' ; Removes minikube from System Path
|
|
|
|
# Remove files
|
|
Delete /REBOOTOK $INSTDIR\minikube.exe
|
|
Delete /REBOOTOK $INSTDIR\logo.ico
|
|
Delete /REBOOTOK $INSTDIR\update_path.ps1
|
|
|
|
# Always delete uninstaller as the last action
|
|
Delete /REBOOTOK $INSTDIR\uninstall.exe
|
|
|
|
# Try to remove the install directory - this will only happen if it is empty
|
|
RmDir /REBOOTOK $INSTDIR
|
|
|
|
# Remove uninstaller information from the registry
|
|
DeleteRegKey HKLM "${UNINSTALLDIR}"
|
|
|
|
SectionEnd
|