!include "MUI2.nsh"
!include "LogicLib.nsh"
!include "installer.nsh"

!ifndef OUTFILE
  !define OUTFILE "farmcontrol-installer.exe"
!endif

!ifndef VERSION
  !define VERSION "0.1.0"
!endif

!ifndef BUILD_NUMBER
  !define BUILD_NUMBER "dev"
!endif

!ifndef APP_SOURCE_DIR
  !define APP_SOURCE_DIR "app"
!endif

Name "Farm Control"
OutFile "${OUTFILE}"
InstallDir "$LOCALAPPDATA\Programs\Farm Control"
InstallDirRegKey HKCU "Software\Tom Butcher\Farm Control" "InstallDir"
RequestExecutionLevel user

!define MUI_ABORTWARNING

!ifndef INSTALLER_ICON
  !define INSTALLER_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!endif

!define MUI_ICON "${INSTALLER_ICON}"
!define MUI_UNICON "${INSTALLER_ICON}"

Icon "${INSTALLER_ICON}"
UninstallIcon "${INSTALLER_ICON}"

BrandingText "Farm Control v${VERSION}-b${BUILD_NUMBER} Installer"

!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"

Function .onInit
  ${If} ${Silent}
    SetAutoClose true
  ${EndIf}
  !insertmacro uninstallPreviousFarmControl
FunctionEnd

Section "Farm Control" SecMain
  SectionIn RO
  SetOutPath $INSTDIR
  File /r "${APP_SOURCE_DIR}\*.*"

  !insertmacro customInstall

  WriteRegStr HKCU "Software\Tom Butcher\Farm Control" "InstallDir" $INSTDIR
  WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Farm Control" \
    "DisplayName" "Farm Control"
  WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Farm Control" \
    "DisplayVersion" "${VERSION}"
  WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Farm Control" \
    "Publisher" "Tom Butcher"
  WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Farm Control" \
    "UninstallString" "$INSTDIR\Uninstall.exe"
  WriteRegDWORD HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Farm Control" \
    "NoModify" 1
  WriteRegDWORD HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Farm Control" \
    "NoRepair" 1

  WriteUninstaller "$INSTDIR\Uninstall.exe"
SectionEnd

Section "Uninstall"
  !insertmacro customUnInstall

  Delete "$INSTDIR\Uninstall.exe"
  RMDir /r "$INSTDIR"

  DeleteRegKey HKCU "Software\Tom Butcher\Farm Control"
  DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Farm Control"
SectionEnd
