diff --git a/setupScript.ps1 b/setupScript.ps1 index 35b8f27..4e0ce1c 100644 --- a/setupScript.ps1 +++ b/setupScript.ps1 @@ -21,43 +21,109 @@ $scriptUrls = @( Import-ScriptsFromUrls -ScriptUrls $scriptUrls -function SetupLabo { - Write-Host "Performing Labo Installation..." - DownloadFiles -Type "Labo" +function Setup { + param ( + [string] $Type + ) + Write-Host "Performing $Type Installation..." + DownloadFiles -Type $Type CheckOfficeInstall SetupUsers SetupEleveReg -username "Eleve" EnableRDP InstallChoco - ChocoInstallApps -Type "Labo" - InstallApps -Type "Labo" + ChocoInstallApps -Type $Type + InstallApps -Type $Type UpdateWindows + Write-Host "Installation complete!" } -function SetupInfo { - Write-Host "Performing Info Installation..." - DownloadFiles -Type "Info" - CheckOfficeInstall - SetupUsers - SetupEleveReg -username "Eleve" - EnableRDP - InstallChoco - ChocoInstallApps -Type "Info" - InstallApps -Type "Info" - UpdateWindows +function Custom { + # ask user if they need to download files + $input = Read-Host "Do you need to download files? (y/n)" + if ($input -eq "y") { + $DownloadFiles = @() + do { + $input = Read-Host "Enter the URL of the file you want to download (leave empty to stop)" + if ($input -ne "") { + $DownloadFiles += $input + } + } while ($input -ne "") + } + # ask user if they need to install office + $input = Read-Host "Do you need to install Office? (y/n)" + if ($input -eq "y") { + $Office = $true + } + # ask user if they need to setup users + $input = Read-Host "Do you need to setup users? (y/n)" + if ($input -eq "y") { + $Users = $true + # ask user if they need to setup eleve registry + $input = Read-Host "Do you need to setup eleve registry? (y/n)" + if ($input -eq "y") { + $EleveReg = $true + } + } + # ask user if they need to enable RDP + $input = Read-Host "Do you need to enable RDP? (y/n)" + if ($input -eq "y") { + $RDP = $true + } + # ask user if they need to install chocolatey + $input = Read-Host "Do you need to install chocolatey? (y/n)" + if ($input -eq "y") { + $Choco = $true + # ask user if they need to install chocolatey apps + $input = Read-Host "Do you need to install chocolatey apps? (y/n)" + if ($input -eq "y") { + $ChocoApps = @() + do { + $input = Read-Host "Enter the name of the app you want to install (leave empty to stop)" + if ($input -ne "") { + $ChocoApps += $input + } + } while ($input -ne "") + } + } + # ask user if they need to install apps + $input = Read-Host "Do you need to install apps? (y/n)" + if ($input -eq "y") { + $Apps = @() + do { + $input = Read-Host "Enter the name of the app you want to install (leave empty to stop)" + if ($input -ne "") { + $Apps += $input + } + } while ($input -ne "") + } + # ask user if they need to update windows + $input = Read-Host "Do you need to update windows? (y/n)" + if ($input -eq "y") { + $Update = $true + } + SetupCustom -DownloadFiles $DownloadFiles -Office $Office -Users $Users -EleveReg $EleveReg -RDP $RDP -Choco $Choco -ChocoApps $ChocoApps -Apps $Apps -Update $Update } -function SetupLaptop { - Write-Host "Performing Laptop Installation..." - DownloadFiles -Type "Laptop" - CheckOfficeInstall - SetupUsers - SetupEleveReg -username "Eleve" - EnableRDP - InstallChoco - ChocoInstallApps -Type "Laptop" - InstallApps -Type "Laptop" - UpdateWindows +function SetupCustom { + param ( + [array] $DownloadFiles, + [bool] $Office, + [bool] $Users, + [bool] $EleveReg, + [bool] $RDP, + [bool] $Choco, + [array] $ChocoApps, + [array] $Apps, + [bool] $Update + ) + Write-Host "Performing Custom Installation..." + if ($DownloadFiles) { + DownloadFiles -Files $DownloadFiles + } + if ($Office) { + CheckOfficeInstall + } } function Show-InstallationMenu { @@ -72,9 +138,10 @@ function Show-InstallationMenu { $selection = Read-Host "Enter the number of your choice" switch ($selection) { - "1" { SetupLabo } - "2" { SetupInfo } - "3" { SetupLaptop } + "1" { Setup -Type "Labo" } + "2" { Setup -Type "Info" } + "3" { Setup -Type "Laptop" } + "4" { Custom } default { Write-Host "Invalid selection. Please choose 1, 2, or 3." } } } while ($selection -ne "1" -and $selection -ne "2" -and $selection -ne "3")