Files
Samuele Locatelli d4e917cce2 Update install script
2020-07-22 13:18:55 +02:00

82 lines
2.6 KiB
PowerShell

# Script di installazione in macchina zip dell'ultima release di ThermoActive
# Check parameters
Param (
[Parameter(Mandatory=$True)]
[ValidateNotNull()]
$zipPath
)
# recupera timestamp x logging
function Get-TimeStamp
{
return "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
}
# registra log!
function DoLog($txt2log)
{
Write-Output "$(Get-TimeStamp) $txt2log" | Out-File c:\tmp\Script.log -Append
}
function checkFolder($dirPath)
{
if(!(Test-Path -path $dirPath))
{
New-Item -ItemType directory -Path $dirPath
DoLog("Folder path has been created successfully at $dirPath")
}
}
Write-Output "-------------------------------- START script --------------------------------" | Out-File c:\tmp\Script.log
$StopWatch = New-Object System.Diagnostics.Stopwatch
$StopWatch.Start()
# directory di base
$BaseDir = "C:\CMS"
$ArchiveDir = "$BaseDir\Archive"
$BackupDir = "$BaseDir\Backup"
$ConfDir = "$BaseDir\Conf"
$LogDir = "$BaseDir\Logs"
$UnzipDir = "$BaseDir\Unzip"
$ProgramDir = "$BaseDir\ThermoActive"
$adesso = Get-Date -Format "yyyy.MM.dd_HH.mm"
# mi sposto in Dir di base
cd $BaseDir
# creo se non ci fosse dir varie
checkFolder($BaseDir)
checkFolder($ArchiveDir)
checkFolder($BackupDir)
checkFolder($ConfDir)
checkFolder($LogDir)
checkFolder($UnzipDir)
checkFolder($ProgramDir)
# Salvo CONF varie
robocopy $ProgramDir"\Config\" $BackupDir"\Config\" /MIR /Z /LOG:$LogDir"\Config.1.log"
robocopy $ProgramDir"\Dict\" $BackupDir"\Dict\" /MIR /Z /LOG:$LogDir"\Dict.1.log"
robocopy $ProgramDir"\Recipes\" $BackupDir"\Recipes\" /MIR /Z /LOG:$LogDir"\Recipes.1.log"
robocopy $ProgramDir"\TMP\" $BackupDir"\TMP\" /MIR /Z /LOG:$LogDir"\Tmp.1.log"
# Move versione attuale
Move-Item -Path $ProgramDir -Destination $ArchiveDir"\ThermoActive_$adesso"
# Faccio unzip NUOVA versione
Expand-Archive -Path $zipPath -DestinationPath $UnzipDir -Force
# Move da ZIP a program
Move-Item -Path $UnzipDir -Destination $ProgramDir
#robocopy $UnzipDir $ProgramDir /MIR /Z /LOG:$LogDir+"Newversion.log" /XD "Config Dict Recipes"
# Ripristino CONF
robocopy $BackupDir"\Config\" $ProgramDir"\Config\" /MIR /Z /LOG:$LogDir"\Config.2.log"
robocopy $BackupDir"\Dict\" $ProgramDir"\Dict\" /MIR /Z /LOG:$LogDir"\Dict.2.log"
robocopy $BackupDir"\Recipes\" $ProgramDir"\Recipes\" /MIR /Z /LOG:$LogDir"\Recipes.2.log"
robocopy $BackupDir"\TMP\" $ProgramDir"\TMP\" /MIR /Z /LOG:$LogDir"\Tmp.2.log"
$StopWatch.Stop()
$StopWatch.Elapsed | Out-File $LogDir"\Install.log" -Append
DoLog("-------------------------------- END script --------------------------------")