From 754dc5483cb6f97b7e1e504dbfaffb2f6acbb768 Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Wed, 7 Aug 2024 21:50:21 +0200 Subject: [PATCH] Refactor chocolatey script --- scripts/Windows/OS/Install.ps1 | 1 + .../Windows/Software/chocolatey/Manage.ps1 | 28 ++++++++++--------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/scripts/Windows/OS/Install.ps1 b/scripts/Windows/OS/Install.ps1 index 7e4046fc..1e53cb17 100644 --- a/scripts/Windows/OS/Install.ps1 +++ b/scripts/Windows/OS/Install.ps1 @@ -184,6 +184,7 @@ $null = New-Module { # Essentials . "$softwarePath/OpenSSH/Manage.ps1" @arguments; . "$softwarePath/PowerShell/Manage.ps1" @arguments; + . "$softwarePath/chocolatey/Manage.ps1" @arguments; } if (Test-Collection "common") { diff --git a/scripts/Windows/Software/chocolatey/Manage.ps1 b/scripts/Windows/Software/chocolatey/Manage.ps1 index 9cd6d9b9..7a9dbbf5 100644 --- a/scripts/Windows/Software/chocolatey/Manage.ps1 +++ b/scripts/Windows/Software/chocolatey/Manage.ps1 @@ -6,6 +6,7 @@ param( ) . "$PSScriptRoot/../../../Common/Scripts/Software.ps1"; +. "$PSScriptRoot/../../../Common/Software/PowerShell/Profile.ps1"; Start-SoftwareInstaller @PSBoundParameters ` -Installer { @@ -16,24 +17,25 @@ Start-SoftwareInstaller @PSBoundParameters ` & $Installer -Action ([InstallerAction]::Configure) } ` -Configurator { + [string] $backup = $null; $nativeProfile = powershell -c '$PROFILE'; + + if (Test-Path -PathType Leaf $nativeProfile) { + $backup = "${nativeProfile}_"; + Move-Item $nativeProfile $backup; + } + $null = New-Item -Force $nativeProfile; choco install -y --force chocolatey; - Copy-Item -Force $nativeProfile $PROFILE; - Push-Location ~; - $files = @($nativeProfile, $PROFILE) | ForEach-Object { Resolve-Path -Relative $_ }; - Pop-Location; + Add-PowerShellProfileStatement ` + -DefaultUser ` + -Category "chocolatey" ` + -Script (Get-Content $nativeProfile | Out-String) ` + -Append; - foreach ($path in $files) { - $fullName = "$env:SystemDrive/Users/Default/$path"; - $dirName = Split-Path -Parent $fullName; - - if (-not (Test-Path -PathType Container $dirName)) { - $null = New-Item -Force -ItemType Directory $dirName; - } - - Copy-Item -Force ~/"$path" $fullName; + if ($backup) { + Move-Item $backup $nativeProfile; } Import-Module "$env:ChocolateyInstall/helpers/chocolateyProfile.psm1";