diff --git a/InstallApps.ps1 b/InstallApps.ps1 index 3009cfd..44cc897 100644 --- a/InstallApps.ps1 +++ b/InstallApps.ps1 @@ -1,6 +1,9 @@ # Get the current directory where the script is located $currentDir = Split-Path -Parent $MyInvocation.MyCommand.Path +# Define the path for logging installed applications +$logFilePath = "/winget/installedApps.txt" + # Function to display a menu and get user input function Show-Menu { param ( @@ -58,6 +61,16 @@ function Select-MultipleOptions { return $selectedOptions | ForEach-Object { $options[$_] } } +# Function to log installed applications +function Log-InstalledApp { + param ( + [string]$appName # The name of the installed application + ) + + # Append the application name to the log file + Add-Content -Path $logFilePath -Value $appName +} + # Main script logic starts here $mainMenuChoice = Show-Menu "Do you want to:" @("Update all apps", "Install apps") @@ -78,7 +91,11 @@ switch ($mainMenuChoice) { # Sub-option 2a: Fresh install of ALL apps Write-Host "Performing fresh install of all apps..." # Execute all scripts in the groups folder - Get-ChildItem -Path "$currentDir\install\groups\*.ps1" | ForEach-Object { & $_.FullName } + Get-ChildItem -Path "$currentDir\install\groups\*.ps1" | ForEach-Object { + & $_.FullName + # Log the installed app (assuming script file names are app names) + Log-InstalledApp -appName $_.Name + } } 2 { # Sub-option 2b: Select package groups for installation @@ -91,6 +108,8 @@ switch ($mainMenuChoice) { foreach ($group in $selectedGroups) { Write-Host "Installing group: $group" & "$currentDir\install\groups\$group" + # Log the installed group (assuming group script names are group names) + Log-InstalledApp -appName $group } } 3 { @@ -104,6 +123,8 @@ switch ($mainMenuChoice) { foreach ($package in $selectedPackages) { Write-Host "Installing package: $package" & $package + # Log the installed package + Log-InstalledApp -appName $package } } }