Allow specifying a backup action
This commit is contained in:
parent
1c3a2fe2e7
commit
5dcf809caf
1 changed files with 29 additions and 19 deletions
|
@ -197,6 +197,7 @@ $null = New-Module {
|
|||
function Start-SoftwareInstaller {
|
||||
param(
|
||||
[string] $Name,
|
||||
[scriptblock] $Backup = $null,
|
||||
[scriptblock] $Installer = $null,
|
||||
[scriptblock] $Configurator = $null,
|
||||
[scriptblock] $UserConfigurator = $null,
|
||||
|
@ -236,7 +237,14 @@ $null = New-Module {
|
|||
arguments = $Arguments;
|
||||
};
|
||||
|
||||
if ($action -eq ([InstallerAction]::Install)) {
|
||||
switch ($Action) {
|
||||
([InstallerAction]::Backup) {
|
||||
if ($Backup) {
|
||||
Write-Host "Backing up $Name…";
|
||||
& $Backup @argumentList;
|
||||
}
|
||||
}
|
||||
([InstallerAction]::Install) {
|
||||
if ($Installer) {
|
||||
Write-Host "Installing $Name…";
|
||||
& $Installer @argumentList;
|
||||
|
@ -247,13 +255,14 @@ $null = New-Module {
|
|||
if ($UserConfigurator -and (-not (Test-SetupUser))) {
|
||||
& $installHandler @argumentList -Action ([InstallerAction]::ConfigureUser);
|
||||
}
|
||||
# ToDo: Automatically configure after installation
|
||||
} elseif ($Action -eq ([InstallerAction]::Configure)) {
|
||||
}
|
||||
([InstallerAction]::Configure) {
|
||||
if ($Configurator) {
|
||||
Write-Host "Configuring $Name…";
|
||||
& $Configurator @argumentList;
|
||||
}
|
||||
} elseif ($Action -eq ([InstallerAction]::ConfigureUser)) {
|
||||
}
|
||||
([InstallerAction]::ConfigureUser) {
|
||||
if ((-not $Arguments.ContainsKey($userArgument)) -or (-not $Arguments[$userArgument])) {
|
||||
$Arguments.Add($userArgument, ($IsWindows ? $env:UserName : $env:USER));
|
||||
}
|
||||
|
@ -263,6 +272,7 @@ $null = New-Module {
|
|||
& $UserConfigurator @argumentList;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
& $installHandler -Action $Action -Arguments $Arguments;
|
||||
|
|
Loading…
Reference in a new issue