Files
setup-script/setupScript.ps1
2023-11-06 09:28:37 +01:00

150 lines
4.4 KiB
PowerShell

function Import-ScriptsFromUrls {
param (
[string[]] $ScriptUrls
)
foreach ($url in $ScriptUrls) {
$scriptContent = Invoke-WebRequest -Uri $url
Invoke-Expression -Command $scriptContent.Content
}
}
$baseUrl = "https://git.justw.tf/Lightemerald/setup-script/raw/branch/main/"
$scriptUrls = @(
($baseUrl + "setupTmp.ps1"),
($baseUrl + "setupOffice.ps1"),
($baseUrl + "setupUsers.ps1"),
($baseUrl + "setupReg.ps1"),
($baseUrl + "setupChoco.ps1"),
($baseUrl + "setupApps.ps1"),
($baseUrl + "setupUpdate.ps1")
)
Import-ScriptsFromUrls -ScriptUrls $scriptUrls
function Setup {
param (
[string] $Type
)
Write-Host "Performing $Type Installation..."
DownloadFiles -Type $Type
CheckOfficeInstall
SetupUsers
SetupEleveReg -username "Eleve"
EnableRDP
InstallChoco
ChocoInstallApps -Type $Type
InstallApps -Type $Type
UpdateWindows
Write-Host "Installation complete!"
}
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 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 {
$selection = $null
do {
Write-Host "Which type of installation would you like to perform?"
Write-Host "1. Labo"
Write-Host "2. Info"
Write-Host "3. Laptop"
$selection = Read-Host "Enter the number of your choice"
switch ($selection) {
"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")
}
Show-InstallationMenu