From 539eb92138f65f68bbc87b51626b7be62f652e69 Mon Sep 17 00:00:00 2001 From: Evan Reed Date: Thu, 2 Jun 2022 16:38:09 -0400 Subject: [PATCH] Feature: Add -WindowsCompatibleOnly switch parameter to install.ps1 Fixes: #840 --- install.ps1 | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/install.ps1 b/install.ps1 index bfea03a81..d985a7085 100644 --- a/install.ps1 +++ b/install.ps1 @@ -11,13 +11,19 @@ .EXAMPLE C:\PS> ./install.ps1 FiraCode, Hack Installs all the FiraCode and Hack fonts. +.EXAMPLE + C:\PS> ./install.ps1 CascadiaCode -WindowsCompatibleOnly + Filters fonts to include only those labeled as 'Windows Compatible' + Can be used in combination with the -FontName and/or -WhatIf parameters .EXAMPLE C:\PS> ./install.ps1 DejaVuSansMono -WhatIf Shows which fonts would be installed without actually installing the fonts. Remove the "-WhatIf" to install the fonts. #> [CmdletBinding(SupportsShouldProcess)] -param () +param ( + [switch]$WindowsCompatibleOnly +) dynamicparam { $Attributes = [Collections.ObjectModel.Collection[Attribute]]::new() @@ -44,8 +50,17 @@ end { Join-Path $PSScriptRoot patched-fonts | Push-Location foreach ($aFontName in $FontName) { - Get-ChildItem $aFontName -Filter "*.ttf" -Recurse | Foreach-Object {$fontFiles.Add($_)} - Get-ChildItem $aFontName -Filter "*.otf" -Recurse | Foreach-Object {$fontFiles.Add($_)} + Get-ChildItem $aFontName -Recurse | Where-Object { + $IsValidFileExtension = $_.Extension -match 'ttf|otf' + + if ($WindowsCompatibleOnly) { + $IsValidFileExtension -and ($_.BaseName -match 'Windows Compatible') + } else { + $IsValidFileExtension + } + } | ForEach-Object { + $fontFiles.Add($_) + } } Pop-Location