Initial commit
This commit is contained in:
41
fonts/install.ps1
Normal file
41
fonts/install.ps1
Normal file
@@ -0,0 +1,41 @@
|
||||
<#
|
||||
.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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user