krona-staff/installer/KronaStaffTerminal.nsi
Ochenstarik b4eb3432ae
Some checks failed
ci / verify (push) Has been cancelled
feat(terminal): add scheduled automatic checkout
2026-09-21 10:00:11 +07:00

101 lines
3.8 KiB
Text

Unicode True
SetCompressor /SOLID lzma
!include "MUI2.nsh"
!ifndef APP_VERSION
!define APP_VERSION "0.2.5"
!endif
!ifndef PUBLISH_DIR
!error "PUBLISH_DIR is required"
!endif
!ifndef OUTPUT_DIR
!error "OUTPUT_DIR is required"
!endif
!ifndef PROJECT_ROOT
!error "PROJECT_ROOT is required"
!endif
!define APP_NAME "Krona Staff Terminal"
!define APP_EXE "KronaStaffTerminal.exe"
!define APP_REGISTRY_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\KronaStaffTerminal"
!define DRIVER_URL "https://www.zkteco.com/en/Biometrics_Module_SDK/ZKFinger-SDK-for-Windows"
Name "${APP_NAME}"
OutFile "${OUTPUT_DIR}\KronaStaffTerminal-Setup-${APP_VERSION}.exe"
InstallDir "$LOCALAPPDATA\Programs\Krona Staff Terminal"
InstallDirRegKey HKCU "${APP_REGISTRY_KEY}" "InstallLocation"
RequestExecutionLevel user
Icon "${PROJECT_ROOT}\apps\KronaStaffTerminal\Assets\AppIcon.ico"
BrandingText "Krona"
ShowInstDetails show
ShowUninstDetails show
VIProductVersion "${APP_VERSION}.0"
VIAddVersionKey /LANG=1049 "ProductName" "${APP_NAME}"
VIAddVersionKey /LANG=1049 "CompanyName" "Krona"
VIAddVersionKey /LANG=1049 "LegalCopyright" "Copyright © 2026 Krona"
VIAddVersionKey /LANG=1049 "FileDescription" "Установщик ${APP_NAME}"
VIAddVersionKey /LANG=1049 "FileVersion" "${APP_VERSION}"
VIAddVersionKey /LANG=1049 "ProductVersion" "${APP_VERSION}"
!define MUI_ABORTWARNING
!define MUI_ICON "${PROJECT_ROOT}\apps\KronaStaffTerminal\Assets\AppIcon.ico"
!define MUI_UNICON "${PROJECT_ROOT}\apps\KronaStaffTerminal\Assets\AppIcon.ico"
!define MUI_FINISHPAGE_RUN "$INSTDIR\${APP_EXE}"
!define MUI_FINISHPAGE_RUN_TEXT "Запустить Krona Staff Terminal"
!define MUI_FINISHPAGE_LINK "Скачать официальный драйвер ZKTeco/BioLink SLK20R"
!define MUI_FINISHPAGE_LINK_LOCATION "${DRIVER_URL}"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"
Section "Krona Staff Terminal" SecMain
SectionIn RO
SetShellVarContext current
SetOutPath "$INSTDIR"
SetOverwrite try
File /r "${PUBLISH_DIR}\*"
WriteUninstaller "$INSTDIR\Uninstall.exe"
CreateDirectory "$SMPROGRAMS\Krona"
CreateShortcut "$SMPROGRAMS\Krona\Krona Staff Terminal.lnk" "$INSTDIR\${APP_EXE}" "" "$INSTDIR\${APP_EXE}" 0
WriteRegStr HKCU "${APP_REGISTRY_KEY}" "DisplayName" "${APP_NAME}"
WriteRegStr HKCU "${APP_REGISTRY_KEY}" "DisplayVersion" "${APP_VERSION}"
WriteRegStr HKCU "${APP_REGISTRY_KEY}" "Publisher" "Krona"
WriteRegStr HKCU "${APP_REGISTRY_KEY}" "InstallLocation" "$INSTDIR"
WriteRegStr HKCU "${APP_REGISTRY_KEY}" "DisplayIcon" "$INSTDIR\${APP_EXE}"
WriteRegStr HKCU "${APP_REGISTRY_KEY}" "UninstallString" "$\"$INSTDIR\Uninstall.exe$\""
WriteRegDWORD HKCU "${APP_REGISTRY_KEY}" "NoModify" 1
WriteRegDWORD HKCU "${APP_REGISTRY_KEY}" "NoRepair" 1
SectionEnd
Section "Значок на рабочем столе" SecDesktop
SetShellVarContext current
CreateShortcut "$DESKTOP\Krona Staff Terminal.lnk" "$INSTDIR\${APP_EXE}" "" "$INSTDIR\${APP_EXE}" 0
SectionEnd
LangString DESC_SecMain ${LANG_RUSSIAN} "Основная программа учёта прихода и ухода."
LangString DESC_SecDesktop ${LANG_RUSSIAN} "Создать значок программы на рабочем столе."
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecMain} $(DESC_SecMain)
!insertmacro MUI_DESCRIPTION_TEXT ${SecDesktop} $(DESC_SecDesktop)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
Section "Uninstall"
SetShellVarContext current
Delete "$DESKTOP\Krona Staff Terminal.lnk"
Delete "$SMPROGRAMS\Krona\Krona Staff Terminal.lnk"
RMDir "$SMPROGRAMS\Krona"
DeleteRegKey HKCU "${APP_REGISTRY_KEY}"
RMDir /r "$INSTDIR"
SectionEnd