; SITENAMESITE_INSTALL.nsi
; THIS INSTALLER INSTALLS THE APPLICATION LAYER OF THE SITENAME-Tool
;2008.11.19 Yordan Georgiev
;Purpose: This NSI script packs all the nessessary source files for running the SITENAME site
;--------------------------------
!include "FileFunc.nsh"
!include "MUI2.nsh"
!include "WordFunc.nsh"
!include "Time.nsh"
!include "Sections.nsh"
!insertmacro WordFind
!insertmacro MUI_LANGUAGE "English"
!define /date MYDATE "%Y%b%d.%H%M%S" ;not really needed but yet
!define SERVER $R0 ;Temp variable for holding the option chosen for server
!define CHOSENSERVER $R9 ;Temp variable for holding the NOTE :
LangString MUI_TEXT_INSTALLING_TITLE ${LANG_ENGLISH} "SITENAME SITE Installation"
LangString MUI_TEXT_INSTALLING_SUBTITLE ${LANG_ENGLISH} "Installing SITENAME SITE"
LangString MUI_TEXT_FINISH_TITLE ${LANG_ENGLISH} "SITENAME SITE Ready"
LangString MUI_TEXT_FINISH_SUBTITLE ${LANG_ENGLISH} "SITENAME SITE Installed"
LangString MUI_TEXT_ABORT_TITLE ${LANG_ENGLISH} "Abort SITENAME SITE Installation ?!"
LangString MUI_TEXT_ABORT_SUBTITLE ${LANG_ENGLISH} "Abort SITENAME SITE Installation ?!"
XPStyle On
AutoCloseWindow false
ShowInstDetails show
;Things that need to be extracted on startup (keep these lines before any File command!)
;Only useful for BZIP2 compression
;Use ReserveFile for your own InstallOptions INI files too!
ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll"
ReserveFile "SITENAMEsite_conf.ini"
Name "SITENAME-Tool Application Layer installer for Any Environment"
; THIS IS THE SETUP.EXE FILE PRODUCED BY THE SCRIPT
OutFile "G:\Setup_SITENAME.exe"
InstallDir "D:\SITENAME" ; CHANGE THIS PATH AS THE DEFAULT ONE TO PROVIDE THE USER TO INSTALL
;Prompt for Vista Admin Rights
RequestExecutionLevel admin
;--------------------------------
;Pages
;Order of pages
Page custom SetCustom ValidateCustom "Choose the right server to install t" ;Custom page.
Page directory
Page instfiles
Page custom CustomPage
UninstPage uninstConfirm
UninstPage instfiles
;--------------------------------
; Declaration of user variables (Var command), allowed charaters for variables names : [a-z][A-Z][0-9] and copy_'
Var "Info"
Var "InfoOK"
;--------------------------------
; Installer
;**************************************************************************************************
Section "Components"
;Get Install Options dialog user input
ReadINIStr ${SERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 2" "State"
DetailPrint "Install option=${SERVER}"
ReadINIStr ${SERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 3" "State"
DetailPrint "Install option=${SERVER}"
ReadINIStr ${SERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 4" "State"
DetailPrint "Install option=${SERVER}"
ReadINIStr ${SERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 5" "Text"
DetailPrint "Info=${SERVER}"
DetailPrint "CHOSENSERVER=${CHOSENSERVER}"
SectionEnd
;**************************************************************************************************
Section
;CREATE BACKUP OF THE EXISTING SITE IF ANY
${time::GetLocalTime} $R0
${time::TimeString} "$R0" $0 $1 $2 $3 $4 $5
/*
0 - date
1 - month
2 - year
3 - hour
4 - minute
5 - seconds
*/
;CREATE THE BACKUP DIRECTORY BASED ON THE TIMESTAMP
CreateDirectory "$INSTDIR.$2$1$0.$3$4$5"
Rename $INSTDIR "$INSTDIR.$2$1$0.$3$4$5"
;CopyFiles "$INSTDIR\*.*" "$INSTDIR.$2$1$0.$3$4$5" 0
SectionEnd
;**************************************************************************************************
;**************************************************************************************************
Section "Unpacking" SecDummy
; MessageBox MB_OK "The installation directory you choosed is $INSTDIR . Press OK to proceed"
CreateDirectory $INSTDIR
SetOutPath $INSTDIR
; HERE UNZIP ACTUALLY THE FILES
; DO NOT INCLUDE FILES CONTAINING "test" *.MDF *.ldf
File /r /x *.MDF /x *.exclude /x *.ldf /x *.pl /x *.nsis /x *.cmd *.cs *.aspx *.aspx.cs *.dll *.css *.resx *.config *.dll *.pdb *.js *.bmp *.gif *.jpg *.png *.master *.master.cs
SectionEnd
;**************************************************************************************************
;**************************************************************************************************
Section "Unpacking bin folder" SecUnpackBin
; HERE WE UNZIP THE FILES FOR THE BIN DIRECTOR
;CreateDirectory "D:\bin\SITENAME_TEST\"
;SetOutPath "D:\bin\SITENAME_TEST\"
;File /r *.cmd *.dll *.exe
;DELETE ALL EXE FILES
SectionEnd
;**************************************************************************************************
;**************************************************************************************************
Section
;FIND OUT WHICH APPLICATION ARE WE INSTALLING
;NOTE THIS ASSUMES INSTALLATION IN THE D:\ DRIVE
;SO LETS ASSUME INSTALLING D:\SITENAME
StrCpy $R0 "$INSTDIR"
${WordFind} $R0 "\" "-02" $R1
DetailPrint "I saw $R1"
WriteUninstaller "$R1\Uninstall_SITENAMESITE.exe"
SectionEnd
;$R1=D:
Section
StrCpy $R2 "$INSTDIR"
${WordFind} $R2 "\" "-01" $R3
DetailPrint "I saw $R3"
SectionEnd
;$R3=SITENAME
Section "SETUPCONNECTION ENVIRONMENT"
;INFORM THE STARTING OF THE COPY
DetailPrint "Setting up the resource file for the server "
;COPY THE SERVER CONFIG FILES FOR THIS APPLICATION
;COPY THE SERVER FILE AS FROM SERVER.FILE TO FILE
;Delete the Web.config file from the development
Delete "$INSTDIR\Web.config"
;server = heitv156lab.devlab.nokia.com
DetailPrint "I saw ${CHOSENSERVER} Followed by space"
CopyFiles "$INSTDIR\INSTALL\${CHOSENSERVER}.$R3.Web.config" "$INSTDIR\Web.config"
;${CHOSENSERVER}
;COPY THE App_GlobalResources folder
;Delete the App_GlobalResources from the development
Delete "$INSTDIR\App_GlobalResources\*.*"
;Copy the server.app.App_GlobalResources to it's correct place
CopyFiles "$INSTDIR\INSTALL\${CHOSENSERVER}.$R3.App_GlobalResources\*.*" "$INSTDIR\App_GlobalResources\"
;NOW DELETE THE INSTALL DIRECTORY CONTAINING THE DIFFERENT SETUP FILES
; Var /GLOBAL "AnotherVar"
; StrCpy $AnotherVar "test"
SectionEnd
;--------------------------------
; Uninstaller
Section "Uninstall"
StrCpy $Info "SITENAME SITE uninstalled successfully."
Delete "$R1\Uninst.exe"
RmDir $INSTDIR
SectionEnd
Function un.OnUninstSuccess
HideWindow
MessageBox MB_OK "$Info"
FunctionEnd
Function OnInstSuccess
StrCpy $Info "SITENAME SITE installed successfully !!!"
HideWindow
MessageBox MB_OK "$InfoOK"
FunctionEnd
;------------------------------------------------------------------------------------
Function CustomPage
SectionGetFlags ${Section_Name} $R0
IntOp $R0 $R0 & ${SF_SELECTED}
IntCmp $R0 ${SF_SELECTED} show
Abort
show:
FunctionEnd
Function .onInit
;Extract InstallOptions files
;$PLUGINSDIR will automatically be removed when the installer closes
InitPluginsDir
File /oname=$PLUGINSDIR\SITENAMEsite_conf.ini "SITENAMEsite_conf.ini"
FunctionEnd
Function SetCustom
;Display the InstallOptions dialog
Push ${SERVER}
InstallOptions::dialog "$PLUGINSDIR\SITENAMEsite_conf.ini"
Pop ${SERVER}
Pop ${SERVER}
FunctionEnd
Function ValidateCustom
ReadINIStr ${SERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 2" "State"
ReadINIStr ${CHOSENSERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 2" "Text"
StrCmp ${SERVER} 1 done
ReadINIStr ${SERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 3" "State"
ReadINIStr ${CHOSENSERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 3" "Text"
StrCmp ${SERVER} 1 done
ReadINIStr ${SERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 4" "State"
ReadINIStr ${CHOSENSERVER} "$PLUGINSDIR\SITENAMEsite_conf.ini" "Field 4" "Text"
StrCmp ${SERVER} 1 done
MessageBox MB_ICONEXCLAMATION|MB_OK "You must select at least one install option!"
Abort
done:
FunctionEnd
Function .onInstSuccess
MessageBox MB_OK "SITENAME site installed correctly"
FunctionEnd
Function un.onUserAbort
MessageBox MB_YESNO "Abort uninstall?" IDYES NoCancelAbort
Abort ; causes uninstaller to not quit.
NoCancelAbort:
FunctionEnd
Function un.onInit
MessageBox MB_YESNO "This will uninstall. Continue?" IDYES NoAbort
Abort ; causes uninstaller to quit.
NoAbort:
FunctionEnd