Files
Scoop/bin/formatjson.ps1
2022-09-28 11:22:33 +08:00

45 lines
1.0 KiB
PowerShell

<#
.SYNOPSIS
Format manifest.
.PARAMETER App
Manifest to format.
Wildcards are supported.
.PARAMETER Dir
Where to search for manifest(s).
.EXAMPLE
PS BUCKETROOT> .\bin\formatjson.ps1
Format all manifests inside bucket directory.
.EXAMPLE
PS BUCKETROOT> .\bin\formatjson.ps1 7zip
Format manifest '7zip' inside bucket directory.
#>
param(
[String] $App = '*',
[Parameter(Mandatory = $true)]
[ValidateScript( {
if (!(Test-Path $_ -Type Container)) {
throw "$_ is not a directory!"
} else {
$true
}
})]
[String] $Dir
)
. "$PSScriptRoot\..\lib\core.ps1"
. "$PSScriptRoot\..\lib\manifest.ps1"
. "$PSScriptRoot\..\lib\json.ps1"
$Dir = Convert-Path $Dir
Get-ChildItem $Dir -Filter "$App.json" -Recurse | ForEach-Object {
$file = $_.FullName
# beautify
$json = parse_json $file | ConvertToPrettyJson
# convert to 4 spaces
$json = $json -replace "`t", ' '
[System.IO.File]::WriteAllLines($file, $json)
}