Skip to content
Snippets Groups Projects
Commit 83fc8cb8 authored by chrfranke's avatar chrfranke
Browse files

Windows installer: Added drive menu, CMD window, UBCD4Win plugin, smartd...

Windows installer: Added drive menu, CMD window, UBCD4Win plugin, smartd service update and other improvements.


git-svn-id: https://smartmontools.svn.sourceforge.net/svnroot/smartmontools/trunk@2424 4ea69e1a-61f1-4043-bf83-b5c94c648137
parent dc29c122
No related branches found
No related tags found
No related merge requests found
CHANGELOG for smartmontools
$Id: CHANGELOG,v 1.629 2007/08/19 14:29:45 chrfranke Exp $
$Id: CHANGELOG,v 1.630 2007/08/19 14:57:04 chrfranke Exp $
The most recent version of this file is:
http://smartmontools.cvs.sourceforge.net/smartmontools/sm5/CHANGELOG?view=markup
......@@ -33,6 +33,10 @@ NOTES FOR FUTURE RELEASES: see TODO file.
<DEVELOPERS: ADDITIONS TO THE CHANGE LOG GO JUST BELOW HERE, PLEASE>
[CF] Windows installer: Added explorer drive menu, CMD window,
UBCD4Win plugin, smartd service update and other minor
improvements.
[CF] Windows: Modified drive letter handling for explorer drive
context menu: try SCSI if type is unknown, allow 'X:\.' syntax.
......
;
; installer.nsi - NSIS install script for smartmontools
;
; Copyright (C) 2006 Christian Franke <smartmontools-support@lists.sourceforge.net>
; Copyright (C) 2006-7 Christian Franke <smartmontools-support@lists.sourceforge.net>
;
; Project home page is: http://smartmontools.sourceforge.net
;
; Download and install NSIS from: http://nsis.sourceforge.net/Download
; Process with makensis to create installer (tested with NSIS 2.17).
; Process with makensis to create installer (tested with NSIS 2.29)
;
; $Id: installer.nsi,v 1.2 2006/07/17 20:51:22 chrfranke Exp $
; $Id: installer.nsi,v 1.3 2007/08/19 14:57:05 chrfranke Exp $
;
......@@ -37,6 +37,7 @@ InstallColors /windows
InstallDir "$PROGRAMFILES\smartmontools"
InstallDirRegKey HKLM "Software\smartmontools" "Install_Dir"
Var UBCDDIR
LicenseData "${INPDIR}\doc\COPYING.txt"
......@@ -45,7 +46,12 @@ LicenseData "${INPDIR}\doc\COPYING.txt"
Page license
Page components
Page directory
Page directory SkipProgPath "" ""
PageEx directory
PageCallbacks SkipUBCDPath "" ""
DirText "Setup will install the UBCD4Win plugin in the following folder."
DirVar $UBCDDIR
PageExEnd
Page instfiles
UninstPage uninstConfirm
......@@ -53,14 +59,16 @@ UninstPage instfiles
InstType "Full"
InstType "Extract files only"
InstType "Drive menu"
InstType "UBCD4Win plugin"
;--------------------------------------------------------------------
; Sections
SectionGroup "Program files"
SectionGroup "!Program files"
Section "smartctl"
Section "smartctl" SMARTCTL_SECTION
SectionIn 1 2
......@@ -69,11 +77,19 @@ SectionGroup "Program files"
SectionEnd
Section "smartd"
Section "smartd" SMARTD_SECTION
SectionIn 1 2
SetOutPath "$INSTDIR\bin"
; Stop service ?
StrCpy $1 ""
IfFileExists "$INSTDIR\bin\smartd.exe" 0 nosrv
ReadRegStr $0 HKLM "System\CurrentControlSet\Services\smartd" "ImagePath"
StrCmp $0 "" nosrv
ExecWait "net stop smartd" $1
nosrv:
File "${INPDIR}\bin\smartd.exe"
IfFileExists "$INSTDIR\bin\smartd.conf" 0 +2
......@@ -83,11 +99,16 @@ SectionGroup "Program files"
IfFileExists "$WINDIR\system32\cmd.exe" 0 +2
File /nonfatal "${INPDIR}\bin\syslogevt.exe"
; Restart service ?
StrCmp $1 "0" 0 +3
MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2 "Restart smartd service ?" IDYES 0 IDNO +2
ExecWait "net start smartd"
SectionEnd
SectionGroupEnd
Section "Documentation"
Section "!Documentation" DOC_SECTION
SectionIn 1 2
......@@ -110,7 +131,7 @@ Section "Documentation"
SectionEnd
Section "Uninstaller"
Section "Uninstaller" UNINST_SECTION
SectionIn 1
AddSize 35
......@@ -122,14 +143,19 @@ Section "Uninstaller"
; Write uninstall keys and program
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\smartmontools" "DisplayName" "smartmontools"
;WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\smartmontools" "Publisher" "smartmontools"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\smartmontools" "UninstallString" '"$INSTDIR\uninst-smartmontools.exe"'
;WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\smartmontools" "URLInfoAbout" "http://smartmontools.sourceforge.net/"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\smartmontools" "HelpLink" "http://smartmontools.sourceforge.net/"
;WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\smartmontools" "URLUpdateInfo" "http://sourceforge.net/project/showfiles.php?group_id=64297"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\smartmontools" "URLUpdateInfo" "http://smartmontools-win32.dyndns.org/"
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\smartmontools" "NoModify" 1
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\smartmontools" "NoRepair" 1
WriteUninstaller "uninst-smartmontools.exe"
SectionEnd
Section "Start Menu Shortcuts"
Section "Start Menu Shortcuts" MENU_SECTION
SectionIn 1
......@@ -139,26 +165,27 @@ Section "Start Menu Shortcuts"
IfFileExists "$INSTDIR\bin\smartctl.exe" 0 noctl
SetOutPath "$INSTDIR\bin"
DetailPrint "Create file: $INSTDIR\bin\smartctl-run.bat"
FileOpen $0 "$INSTDIR\bin\smartctl-run.bat" "w"
FileWrite $0 "@echo off$\r$\necho smartctl %1 %2 %3 %4 %5$\r$\nsmartctl %1 %2 %3 %4 %5$\r$\npause$\r$\n"
FileClose $0
Push "$INSTDIR\bin\smartctl-run.bat"
Call CreateSmartctlBat
IfFileExists "$WINDIR\system32\cmd.exe" 0 +2
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl (CMD).lnk" "cmd.exe" "/k smartctl-run.bat"
CreateDirectory "$SMPROGRAMS\smartmontools\smartctl Examples"
FileOpen $0 "$SMPROGRAMS\smartmontools\smartctl Examples\!Read this first!.txt" "w"
FileWrite $0 "All the example commands in this directory$\r$\napply to the first IDE/ATA/SATA drive (hda).$\r$\n"
FileWrite $0 "All the example commands in this directory$\r$\napply to the first drive (sda).$\r$\n"
FileClose $0
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\All info (-a).lnk" "$INSTDIR\bin\smartctl-run.bat" "-a hda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\Identify drive (-i).lnk" "$INSTDIR\bin\smartctl-run.bat" "-i hda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\SMART attributes (-A).lnk" "$INSTDIR\bin\smartctl-run.bat" "-A hda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\SMART capabilities (-c).lnk" "$INSTDIR\bin\smartctl-run.bat" "-c hda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\SMART health status (-H).lnk" "$INSTDIR\bin\smartctl-run.bat" "-H hda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\SMART error log (-l error).lnk" "$INSTDIR\bin\smartctl-run.bat" "-l error hda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\SMART selftest log (-l selftest).lnk" "$INSTDIR\bin\smartctl-run.bat" "-l selftest hda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\Start long selftest (-t long).lnk" "$INSTDIR\bin\smartctl-run.bat" "-t long hda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\Start offline test (-t offline).lnk" "$INSTDIR\bin\smartctl-run.bat" "-t offline hda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\Start short selftest (-t short).lnk" "$INSTDIR\bin\smartctl-run.bat" "-t short hda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\Stop(Abort) selftest (-X).lnk" "$INSTDIR\bin\smartctl-run.bat" "-X hda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\Turn SMART off (-s off).lnk" "$INSTDIR\bin\smartctl-run.bat" "-s off hda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\Turn SMART on (-s on).lnk" "$INSTDIR\bin\smartctl-run.bat" "-s on hda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\All info (-a).lnk" "$INSTDIR\bin\smartctl-run.bat" "-a sda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\Identify drive (-i).lnk" "$INSTDIR\bin\smartctl-run.bat" "-i sda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\SMART attributes (-A).lnk" "$INSTDIR\bin\smartctl-run.bat" "-A sda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\SMART capabilities (-c).lnk" "$INSTDIR\bin\smartctl-run.bat" "-c sda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\SMART health status (-H).lnk" "$INSTDIR\bin\smartctl-run.bat" "-H sda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\SMART error log (-l error).lnk" "$INSTDIR\bin\smartctl-run.bat" "-l error sda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\SMART selftest log (-l selftest).lnk" "$INSTDIR\bin\smartctl-run.bat" "-l selftest sda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\Start long selftest (-t long).lnk" "$INSTDIR\bin\smartctl-run.bat" "-t long sda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\Start offline test (-t offline).lnk" "$INSTDIR\bin\smartctl-run.bat" "-t offline sda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\Start short selftest (-t short).lnk" "$INSTDIR\bin\smartctl-run.bat" "-t short sda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\Stop(Abort) selftest (-X).lnk" "$INSTDIR\bin\smartctl-run.bat" "-X sda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\Turn SMART off (-s off).lnk" "$INSTDIR\bin\smartctl-run.bat" "-s off sda"
CreateShortCut "$SMPROGRAMS\smartmontools\smartctl Examples\Turn SMART on (-s on).lnk" "$INSTDIR\bin\smartctl-run.bat" "-s on sda"
noctl:
; smartd
......@@ -169,9 +196,9 @@ Section "Start Menu Shortcuts"
FileWrite $0 "@echo off$\r$\necho smartd %1 %2 %3 %4 %5$\r$\nsmartd %1 %2 %3 %4 %5$\r$\npause$\r$\n"
FileClose $0
CreateDirectory "$SMPROGRAMS\smartmontools\smartd Examples"
CreateShortCut "$SMPROGRAMS\smartmontools\smartd Examples\Daemon start, log to smartd.log.lnk" "$INSTDIR\bin\smartd-run.bat" "-l local0"
CreateShortCut "$SMPROGRAMS\smartmontools\smartd Examples\Daemon start, smartd.log.lnk" "$INSTDIR\bin\smartd-run.bat" "-l local0"
IfFileExists "$WINDIR\system32\cmd.exe" 0 +2
CreateShortCut "$SMPROGRAMS\smartmontools\smartd Examples\Daemon start, log to eventlog.lnk" "$INSTDIR\bin\smartd-run.bat" ""
CreateShortCut "$SMPROGRAMS\smartmontools\smartd Examples\Daemon start, eventlog.lnk" "$INSTDIR\bin\smartd-run.bat" ""
CreateShortCut "$SMPROGRAMS\smartmontools\smartd Examples\Daemon stop.lnk" "$INSTDIR\bin\smartd-run.bat" "stop"
CreateShortCut "$SMPROGRAMS\smartmontools\smartd Examples\Do all tests once (-q onecheck).lnk" "$INSTDIR\bin\smartd-run.bat" "-q onecheck"
CreateShortCut "$SMPROGRAMS\smartmontools\smartd Examples\Debug mode (-d).lnk" "$INSTDIR\bin\smartd-run.bat" "-d"
......@@ -182,8 +209,9 @@ Section "Start Menu Shortcuts"
; smartd service (not on 9x/ME)
IfFileExists "$WINDIR\system32\cmd.exe" 0 nosvc
CreateShortCut "$SMPROGRAMS\smartmontools\smartd Examples\Service install, log to eventlog.lnk" "$INSTDIR\bin\smartd-run.bat" "install"
CreateShortCut "$SMPROGRAMS\smartmontools\smartd Examples\Service install, log to smartd.log.lnk" "$INSTDIR\bin\smartd-run.bat" "install -l local0"
CreateShortCut "$SMPROGRAMS\smartmontools\smartd Examples\Service install, eventlog, 30min.lnk" "$INSTDIR\bin\smartd-run.bat" "install"
CreateShortCut "$SMPROGRAMS\smartmontools\smartd Examples\Service install, smartd.log, 10min.lnk" "$INSTDIR\bin\smartd-run.bat" "install -l local0 -i 600"
CreateShortCut "$SMPROGRAMS\smartmontools\smartd Examples\Service install, smartd.log, 30min.lnk" "$INSTDIR\bin\smartd-run.bat" "install -l local0"
CreateShortCut "$SMPROGRAMS\smartmontools\smartd Examples\Service remove.lnk" "$INSTDIR\bin\smartd-run.bat" "remove"
DetailPrint "Create file: $INSTDIR\bin\net-run.bat"
FileOpen $0 "$INSTDIR\bin\net-run.bat" "w"
......@@ -214,6 +242,7 @@ Section "Start Menu Shortcuts"
CreateShortCut "$SMPROGRAMS\smartmontools\Documentation\README.lnk" "$INSTDIR\doc\README.txt"
CreateShortCut "$SMPROGRAMS\smartmontools\Documentation\TODO.lnk" "$INSTDIR\doc\TODO.txt"
CreateShortCut "$SMPROGRAMS\smartmontools\Documentation\WARNINGS.lnk" "$INSTDIR\doc\WARNINGS.txt"
CreateShortCut "$SMPROGRAMS\smartmontools\Documentation\Windows version download page.lnk" "http://smartmontools-win32.dyndns.org/smartmontools/"
nodoc:
; Homepage
......@@ -225,7 +254,7 @@ Section "Start Menu Shortcuts"
SectionEnd
Section "Add install dir to PATH" PATH_IDX
Section "Add install dir to PATH" PATH_SECTION
SectionIn 1
......@@ -235,14 +264,105 @@ Section "Add install dir to PATH" PATH_IDX
SectionEnd
SectionGroup "Add smartctl to drive menu"
!macro DriveMenuRemove
DetailPrint "Remove drive menu entries"
DeleteRegKey HKCR "Drive\shell\smartctl0"
DeleteRegKey HKCR "Drive\shell\smartctl1"
DeleteRegKey HKCR "Drive\shell\smartctl2"
DeleteRegKey HKCR "Drive\shell\smartctl3"
DeleteRegKey HKCR "Drive\shell\smartctl4"
DeleteRegKey HKCR "Drive\shell\smartctl5"
!macroend
Section "Remove existing entries first"
SectionIn 3
!insertmacro DriveMenuRemove
SectionEnd
!macro DriveSection id name args
Section 'smartctl ${args} ...' DRIVE_${id}_SECTION
SectionIn 3
DetailPrint 'Add drive menu entry "${name}": smartctl ${args} ...'
WriteRegStr HKCR "Drive\shell\smartctl${id}" "" "${name}"
WriteRegStr HKCR "Drive\shell\smartctl${id}\command" "" '"$INSTDIR\bin\smartctl-run.bat" ${args} %L'
SectionEnd
!macroend
!insertmacro DriveSection 0 "SMART all info" "-a"
!insertmacro DriveSection 1 "SMART status" "-Hc"
!insertmacro DriveSection 2 "SMART attributes" "-A"
!insertmacro DriveSection 3 "SMART short selftest" "-t short"
!insertmacro DriveSection 4 "SMART long selftest" "-t long"
!insertmacro DriveSection 5 "SMART continue selective selftest" '-t "selective,cont"'
SectionGroupEnd
Section "UBCD4Win Plugin" UBCD_SECTION
SectionIn 4
SetOutPath "$UBCDDIR"
DetailPrint "Create file: smartmontools.inf"
FileOpen $0 "$UBCDDIR\smartmontools.inf" "w"
FileWrite $0 '; smartmontools.inf$\r$\n; PE Builder v3 plug-in INF file$\r$\n'
FileWrite $0 '; Created by smartmontools installer$\r$\n'
FileWrite $0 '; http://smartmontools.sourceforge.net/$\r$\n$\r$\n'
FileWrite $0 '[Version]$\r$\nSignature= "$$Windows NT$$"$\r$\n$\r$\n'
FileWrite $0 '[PEBuilder]$\r$\nName="Disk -Diagnostic: smartmontools"$\r$\n'
FileWrite $0 'Enable=1$\r$\nHelp="files\smartctl.8.html"$\r$\n$\r$\n'
FileWrite $0 '[WinntDirectories]$\r$\na=Programs\smartmontools,2$\r$\n$\r$\n'
FileWrite $0 '[SourceDisksFolders]$\r$\nfiles=a,,1$\r$\n$\r$\n'
FileWrite $0 '[Append]$\r$\nnu2menu.xml, smartmontools_nu2menu.xml$\r$\n'
FileClose $0
DetailPrint "Create file: smartmontools_nu2menu.xml"
FileOpen $0 "$UBCDDIR\smartmontools_nu2menu.xml" "w"
FileWrite $0 '<!-- Nu2Menu entry for smartmontools -->$\r$\n<NU2MENU>$\r$\n'
FileWrite $0 '$\t<MENU ID="Programs">$\r$\n$\t$\t<MITEM TYPE="POPUP" MENUID="Disk Tools">'
FileWrite $0 'Disk Tools</MITEM>$\r$\n$\t</MENU>$\r$\n$\t<MENU ID="Disk Tools">$\r$\n'
FileWrite $0 '$\t$\t<MITEM TYPE="POPUP" MENUID="Diagnostic">Diagnostic</MITEM>$\r$\n$\t</MENU>'
FileWrite $0 '$\r$\n$\t<MENU ID="Diagnostic">$\r$\n$\t$\t<MITEM TYPE="ITEM" DISABLED="'
FileWrite $0 '@Not(@FileExists(@GetProgramDrive()\Programs\smartmontools\smartctl.exe))" '
FileWrite $0 'CMD="RUN" FUNC="cmd.exe /k cd /d @GetProgramDrive()\Programs\smartmontools&'
FileWrite $0 'set PATH=@GetProgramDrive()\Programs\smartmontools;%PATH%&smartctl-run.bat ">'
FileWrite $0 'smartctl</MITEM>$\r$\n$\t</MENU>$\r$\n</NU2MENU>$\r$\n'
FileClose $0
SetOutPath "$UBCDDIR\files"
DetailPrint "Create file: smartctl-run.bat"
Push "$UBCDDIR\files\smartctl-run.bat"
Call CreateSmartctlBat
File "${INPDIR}\bin\smartctl.exe"
File "${INPDIR}\bin\smartd.exe"
File "${INPDIR}\doc\smartctl.8.html"
File "${INPDIR}\doc\smartctl.8.txt"
File "${INPDIR}\doc\smartd.8.html"
File "${INPDIR}\doc\smartd.8.txt"
File "${INPDIR}\doc\smartd.conf"
SectionEnd
;--------------------------------------------------------------------
Section "Uninstall"
; Remove registry keys
; Stop & remove service
IfFileExists "$INSTDIR\bin\smartd.exe" 0 nosrv
ReadRegStr $0 HKLM "System\CurrentControlSet\Services\smartd" "ImagePath"
StrCmp $0 "" nosrv
ExecWait "net stop smartd"
MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2 "Remove smartd service ?" IDYES 0 IDNO nosrv
ExecWait "$INSTDIR\bin\smartd.exe remove"
nosrv:
; Remove installer registry keys
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\smartmontools"
DeleteRegKey HKLM "Software\smartmontools"
; Remove conf and log file
IfFileExists "$INSTDIR\bin\smartd.conf" 0 noconf
; Assume unchanged if timestamp is equal to sample file
GetFileTime "$INSTDIR\bin\smartd.conf" $0 $1
......@@ -288,8 +408,8 @@ Section "Uninstall"
; Remove folders
RMDir "$SMPROGRAMS\smartmontools\Documentation"
RMDir "$SMPROGRAMS\smartmontools\smartctl Examples\"
RMDir "$SMPROGRAMS\smartmontools\smartd Examples\"
RMDir "$SMPROGRAMS\smartmontools\smartctl Examples"
RMDir "$SMPROGRAMS\smartmontools\smartd Examples"
RMDir "$SMPROGRAMS\smartmontools"
RMDir "$INSTDIR\bin"
RMDir "$INSTDIR\doc"
......@@ -300,28 +420,98 @@ Section "Uninstall"
Push "$INSTDIR\bin"
Call un.RemoveFromPath
; Check for still existing files
; Remove drive menu registry entries
!insertmacro DriveMenuRemove
; Check for still existing entries
IfFileExists "$INSTDIR\bin\smartd.exe" 0 +3
MessageBox MB_OK|MB_ICONEXCLAMATION "$INSTDIR\bin\smartd.exe could not be removed.$\nsmartd is possibly still running."
Goto +3
IfFileExists "$INSTDIR" 0 +2
MessageBox MB_OK "Note: $INSTDIR could not be removed."
IfFileExists "$SMPROGRAMS\smartmontools" 0 +2
MessageBox MB_OK "Note: $SMPROGRAMS\smartmontools could not be removed."
SectionEnd
;--------------------------------------------------------------------
; Functions
Function .onInit
; Get UBCD4Win install location
ReadRegStr $0 HKLM "Software\UBCD4Win" "InstallPath"
StrCmp $0 "" 0 +2
StrCpy $0 "C:\UBCD4Win"
StrCpy $UBCDDIR "$0\plugin\Disk\Diagnostic\smartmontools"
; Hide "Add install dir to PATH" on 9x/ME
IfFileExists "$WINDIR\system32\cmd.exe" +2 0
SectionSetText ${PATH_IDX} ""
SectionSetText ${PATH_SECTION} ""
FunctionEnd
; Directory page callbacks
!macro CheckSection section
SectionGetFlags ${section} $0
IntOp $0 $0 & 1
IntCmp $0 1 done
!macroend
Function SkipProgPath
!insertmacro CheckSection ${SMARTCTL_SECTION}
!insertmacro CheckSection ${SMARTD_SECTION}
!insertmacro CheckSection ${DOC_SECTION}
!insertmacro CheckSection ${MENU_SECTION}
!insertmacro CheckSection ${PATH_SECTION}
!insertmacro CheckSection ${DRIVE_0_SECTION}
!insertmacro CheckSection ${DRIVE_1_SECTION}
!insertmacro CheckSection ${DRIVE_2_SECTION}
!insertmacro CheckSection ${DRIVE_3_SECTION}
!insertmacro CheckSection ${DRIVE_4_SECTION}
!insertmacro CheckSection ${DRIVE_5_SECTION}
Abort
done:
FunctionEnd
Function SkipUBCDPath
!insertmacro CheckSection ${UBCD_SECTION}
Abort
done:
FunctionEnd
; Create smartctl-run.bat
Function CreateSmartctlBat
Exch $0
FileOpen $0 $0 "w"
FileWrite $0 '@echo off$\r$\nif not "%1" == "" goto run$\r$\n'
FileWrite $0 'echo Examples (for first drive):$\r$\n'
FileWrite $0 'echo smartctl -i sda Show identify information$\r$\n'
FileWrite $0 'echo smartctl -H sda Show SMART health status$\r$\n'
FileWrite $0 'echo smartctl -c sda Show SMART capabilities$\r$\n'
FileWrite $0 'echo smartctl -A sda Show SMART attributes$\r$\n'
FileWrite $0 'echo smartctl -l error sda Show error log$\r$\n'
FileWrite $0 'echo smartctl -l selftest sda Show self-test log$\r$\n'
FileWrite $0 'echo smartctl -a sda Show all of the above$\r$\n'
FileWrite $0 'echo smartctl -t short sda Start short self test$\r$\n'
FileWrite $0 'echo smartctl -t long sda Start long self test$\r$\n'
FileWrite $0 'echo Use "sdb", "sdc", ... for second, third, ... drive.$\r$\n'
FileWrite $0 'echo See man page (smartctl.8.*) for further info.$\r$\n'
FileWrite $0 'goto end$\r$\n:run$\r$\n'
FileWrite $0 'echo smartctl %1 %2 %3 %4 %5$\r$\n'
FileWrite $0 'smartctl %1 %2 %3 %4 %5$\r$\n'
FileWrite $0 'pause$\r$\n:end$\r$\n'
FileClose $0
Pop $0
FunctionEnd
;--------------------------------------------------------------------
; Utility functions
; Path functions
;
; Based on example from:
; http://nsis.sourceforge.net/Path_Manipulation
......@@ -355,12 +545,12 @@ Function AddToPath
Push "$0;"
Call StrStr
Pop $2
StrCmp $2 "" "" done
StrCmp $2 "" 0 done
Push "$1;"
Push "$0\;"
Call StrStr
Pop $2
StrCmp $2 "" "" done
StrCmp $2 "" 0 done
DetailPrint "Add to PATH: $0"
StrCpy $2 $1 1 -1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment