Skip to content

Commit 5719537

Browse files
authored
Create nsis script for installing (GoogleContainerTools#5233)
1 parent 9eab6c3 commit 5719537

File tree

1 file changed

+130
-0
lines changed

1 file changed

+130
-0
lines changed

installers/windows/skaffold.nsi

+130
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
!define APP_NAME "Skaffold"
2+
!define COMP_NAME "Google"
3+
!define WEB_SITE "https://skaffold.dev"
4+
!define VERSION "$%SKAFFOLD_VERSION%"
5+
!define COPYRIGHT "Google Skaffold Authors, 2021"
6+
!define DESCRIPTION "Fast. Repeatable. Simple. Local Kubernetes Development"
7+
!define INSTALLER_NAME "skaffold_installer.exe"
8+
!define MAIN_APP_EXE "skaffold.exe"
9+
!define ICON "..\..\docs\static\favicons\favicon.ico"
10+
!define BANNER "..\..\logo\skaffold.jpg"
11+
!define LICENSE_TXT "..\..\LICENSE"
12+
13+
!define INSTALL_DIR "$PROGRAMFILES64\${APP_NAME}"
14+
!define INSTALL_TYPE "SetShellVarContext all"
15+
!define REG_ROOT "HKLM"
16+
!define REG_APP_PATH "Software\Microsoft\Windows\CurrentVersion\App Paths\${MAIN_APP_EXE}"
17+
!define UNINSTALL_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}"
18+
19+
######################################################################
20+
21+
VIProductVersion "${VERSION}"
22+
VIAddVersionKey "ProductName" "${APP_NAME}"
23+
VIAddVersionKey "CompanyName" "${COMP_NAME}"
24+
VIAddVersionKey "LegalCopyright" "${COPYRIGHT}"
25+
VIAddVersionKey "FileDescription" "${DESCRIPTION}"
26+
VIAddVersionKey "FileVersion" "${VERSION}"
27+
28+
######################################################################
29+
30+
SetCompressor /SOLID Lzma
31+
Name "${APP_NAME}"
32+
Caption "${APP_NAME}"
33+
OutFile "${INSTALLER_NAME}"
34+
BrandingText "${APP_NAME}"
35+
InstallDirRegKey "${REG_ROOT}" "${REG_APP_PATH}" ""
36+
InstallDir "${INSTALL_DIR}"
37+
38+
######################################################################
39+
40+
!define MUI_ICON "${ICON}"
41+
!define MUI_UNICON "${ICON}"
42+
!define MUI_WELCOMEFINISHPAGE_BITMAP "${BANNER}"
43+
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${BANNER}"
44+
45+
######################################################################
46+
47+
!include "MUI2.nsh"
48+
49+
!define MUI_ABORTWARNING
50+
!define MUI_UNABORTWARNING
51+
52+
!insertmacro MUI_PAGE_WELCOME
53+
!insertmacro MUI_PAGE_LICENSE "${LICENSE_TXT}"
54+
!insertmacro MUI_PAGE_DIRECTORY
55+
!insertmacro MUI_PAGE_INSTFILES
56+
!insertmacro MUI_PAGE_FINISH
57+
!insertmacro MUI_UNPAGE_CONFIRM
58+
!insertmacro MUI_UNPAGE_INSTFILES
59+
!insertmacro MUI_UNPAGE_FINISH
60+
!insertmacro MUI_LANGUAGE "English"
61+
62+
######################################################################
63+
64+
Section -MainProgram
65+
${INSTALL_TYPE}
66+
67+
SetOverwrite ifnewer
68+
SetOutPath "$INSTDIR"
69+
File /r "out\\"
70+
71+
Rename "$INSTDIR\\skaffold-windows-amd64.exe" "$INSTDIR\\skaffold.exe"
72+
73+
EnVar::AddValue "PATH" "$INSTDIR"
74+
Pop $0
75+
DetailPrint "EnVar::AddValue returned=|$0|"
76+
77+
SectionEnd
78+
79+
######################################################################
80+
81+
Section -Icons_Reg
82+
SetOutPath "$INSTDIR"
83+
WriteUninstaller "$INSTDIR\uninstall.exe"
84+
85+
CreateDirectory "$SMPROGRAMS\${APP_NAME}"
86+
CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME}.lnk" "$INSTDIR\${MAIN_APP_EXE}"
87+
CreateShortCut "$DESKTOP\${APP_NAME}.lnk" "$INSTDIR\${MAIN_APP_EXE}"
88+
CreateShortCut "$SMPROGRAMS\${APP_NAME}\Uninstall ${APP_NAME}.lnk" "$INSTDIR\uninstall.exe"
89+
90+
!ifdef WEB_SITE
91+
WriteIniStr "$INSTDIR\${APP_NAME} website.url" "InternetShortcut" "URL" "${WEB_SITE}"
92+
CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME} Website.lnk" "$INSTDIR\${APP_NAME} website.url"
93+
!endif
94+
95+
WriteRegStr ${REG_ROOT} "${REG_APP_PATH}" "" "$INSTDIR\${MAIN_APP_EXE}"
96+
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayName" "${APP_NAME}"
97+
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "UninstallString" "$INSTDIR\uninstall.exe"
98+
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayIcon" "$INSTDIR\${MAIN_APP_EXE}"
99+
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayVersion" "${VERSION}"
100+
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "Publisher" "${COMP_NAME}"
101+
102+
!ifdef WEB_SITE
103+
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "URLInfoAbout" "${WEB_SITE}"
104+
!endif
105+
SectionEnd
106+
107+
######################################################################
108+
109+
Section Uninstall
110+
${INSTALL_TYPE}
111+
112+
RmDir /r "$INSTDIR"
113+
114+
; Delete a value from a variable
115+
EnVar::DeleteValue "PATH" "$INSTDIR"
116+
Pop $0
117+
DetailPrint "EnVar::DeleteValue returned=|$0|"
118+
119+
Delete "$SMPROGRAMS\${APP_NAME}\${APP_NAME}.lnk"
120+
Delete "$SMPROGRAMS\${APP_NAME}\Uninstall ${APP_NAME}.lnk"
121+
!ifdef WEB_SITE
122+
Delete "$SMPROGRAMS\${APP_NAME}\${APP_NAME} Website.lnk"
123+
!endif
124+
Delete "$DESKTOP\${APP_NAME}.lnk"
125+
126+
RmDir "$SMPROGRAMS\${APP_NAME}"
127+
128+
DeleteRegKey ${REG_ROOT} "${REG_APP_PATH}"
129+
DeleteRegKey ${REG_ROOT} "${UNINSTALL_PATH}"
130+
SectionEnd

0 commit comments

Comments
 (0)