diff --git a/data/basic-apps.csv b/data/basic-apps.csv index bad23100..3b232240 100644 --- a/data/basic-apps.csv +++ b/data/basic-apps.csv @@ -1,5 +1,5 @@ APPLICATION, CATEGORY, APPID, -"7-Zip for Windows", "file utility", "XPDNKVCX4QD2DC", +"7-Zip", "file utility", "7zip.7zip", "Aquile Reader", "ebook reader", "9P08T4JLTQNK", "CrystalDiskInfo", "HDD/SSD utility", "XP8K4RGX25G3GM", "Dopamine", "audio player", "Digimezzo.Dopamine.2", diff --git a/scripts/install-basic-apps.ps1 b/scripts/install-basic-apps.ps1 index b52a699f..f4bb77af 100755 --- a/scripts/install-basic-apps.ps1 +++ b/scripts/install-basic-apps.ps1 @@ -6,8 +6,10 @@ NOTE: Apps from Microsoft Store are preferred (due to security and automatic updates). .EXAMPLE PS> ./install-basic-apps.ps1 - ⏳ (1/37) Loading Data/basic-apps.csv... 35 apps - ⏳ (2/37) These apps will be installed or upgraded: 7-Zip · Aquile Reader ... + ⏳ (1) Loading data/basic-apps.csv... 37 apps listed + ⏳ (2) Applications to install/upgrade: 7-Zip · Aquile Reader ... + ... + ✔️ Installed 37 basic apps (0 skipped) in 387 sec. .LINK https://github.com/fleschutz/PowerShell .NOTES @@ -15,37 +17,37 @@ #> try { - $StopWatch = [system.diagnostics.stopwatch]::startNew() + $stopWatch = [system.diagnostics.stopwatch]::startNew() - Write-Host "⏳ (1/37) Loading Data/basic-apps.csv... " -noNewline - $Table = Import-CSV "$PSScriptRoot/../data/basic-apps.csv" - $NumEntries = $Table.count - "$NumEntries apps" - Write-Host "⏳ (2/37) These apps will be installed or upgraded: " -noNewline - foreach($Row in $Table) { - [string]$AppName = $Row.APPLICATION - Write-Host "$AppName · " -noNewline + Write-Host "⏳ (1) Loading data/basic-apps.csv... " -noNewline + $table = Import-CSV "$PSScriptRoot/../data/basic-apps.csv" + $numEntries = $table.count + "$numEntries apps listed" + Write-Host "⏳ (2) Applications to install/upgrade: " -noNewline + foreach($row in $table) { + [string]$appName = $row.APPLICATION + Write-Host "$appName · " -noNewline } "" "" - "Installation will start in 15 seconds... (otherwise press to abort)" + "The installation will start in 15 seconds or press to abort..." Start-Sleep -seconds 15 - [int]$Step = 3 - [int]$Skipped = 0 - foreach($Row in $Table) { - [string]$AppName = $Row.APPLICATION - [string]$Category = $Row.CATEGORY - [string]$AppID = $Row.APPID + [int]$step = 3 + [int]$numSkipped = 0 + foreach($row in $table) { + [string]$appName = $row.APPLICATION + [string]$category = $row.CATEGORY + [string]$appID = $row.APPID Write-Host " " - Write-Host "⏳ ($Step/$($NumEntries + 2)) Installing $Category '$AppName'..." - & winget install --id $AppID --accept-package-agreements --accept-source-agreements - if ($lastExitCode -ne "0") { $Skipped++ } - $Step++ + Write-Host "⏳ ($step/$($numEntries + 2)) Installing $category '$appName'..." + & winget install --id $appID --accept-package-agreements --accept-source-agreements + if ($lastExitCode -ne "0") { $numSkipped++ } + $step++ } - [int]$Installed = ($NumEntries - $Skipped) - [int]$Elapsed = $StopWatch.Elapsed.TotalSeconds - "✔️ Installation of $Installed basic apps ($Skipped skipped) took $Elapsed sec" + [int]$numInstalled = ($numEntries - $numSkipped) + [int]$elapsed = $stopWatch.Elapsed.TotalSeconds + "✔️ Installed $numInstalled basic apps ($numSkipped skipped) in $elapsed sec." exit 0 # success } catch { "⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"