Permalink
Cannot retrieve contributors at this time
nerd-fonts/patched-fonts/install.ps1
Go to file<# | |
.SYNOPSIS | |
Installs the provided fonts. | |
.DESCRIPTION | |
Installs all the provided fonts by default. The FontName | |
parameter can be used to pick a subset of fonts to install. | |
.EXAMPLE | |
C:\PS> ./install.ps1 | |
Installs all the fonts located in the Git repository. | |
.EXAMPLE | |
C:\PS> ./install.ps1 furamono-, hack-* | |
Installs all the FuraMono and Hack fonts. | |
.EXAMPLE | |
C:\PS> ./install.ps1 d* -WhatIf | |
Shows which fonts would be installed without actually installing the fonts. | |
Remove the "-WhatIf" to install the fonts. | |
#> | |
[CmdletBinding(SupportsShouldProcess)] | |
param( | |
# Specifies the font name to install. Default value will install all fonts. | |
[Parameter(Position=0)] | |
[string[]] | |
$FontName = '*' | |
) | |
$fontFiles = New-Object 'System.Collections.Generic.List[System.IO.FileInfo]' | |
foreach ($aFontName in $FontName) { | |
Get-ChildItem $PSScriptRoot -Filter "${aFontName}.ttf" -Recurse | Foreach-Object {$fontFiles.Add($_)} | |
Get-ChildItem $PSScriptRoot -Filter "${aFontName}.otf" -Recurse | Foreach-Object {$fontFiles.Add($_)} | |
} | |
$fonts = $null | |
foreach ($fontFile in $fontFiles) { | |
if ($PSCmdlet.ShouldProcess($fontFile.Name, "Install Font")) { | |
if (!$fonts) { | |
$shellApp = New-Object -ComObject shell.application | |
$fonts = $shellApp.NameSpace(0x14) | |
} | |
$fonts.CopyHere($fontFile.FullName) | |
} | |
} |