add in-script help
This commit is contained in:
parent
f22fedf88c
commit
57e6c0e302
61
sri.ps1
61
sri.ps1
@ -1,3 +1,59 @@
|
||||
<# Create SRI hashes for specified files or directory contents #>
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Create Sub-Resource Integrity (SRI) SHA hashes for specified files or directory contents.
|
||||
.\sri.ps1 -files file1[, file2, ...] -directory /path/to/directory [-filter filter] [-hashAlgo sha256|sha384|sha512]
|
||||
|
||||
.DESCRIPTION
|
||||
Create Sub-Resource Integrity (SRI) SHA-256, SHA-384 or SHA-512 hashes for a specified list of files, a sub-set of files within a directory, or all files within a directory.
|
||||
|
||||
.PARAMETER files
|
||||
A comma-separated list of files (full path suggested) for which to generate SRI hashes.
|
||||
EXAMPLE: style.css
|
||||
EXAMPLE: /some/path/style.css
|
||||
EXAMPLE: style.css, /some/other/path/menu.css
|
||||
ALIAS: file, list
|
||||
|
||||
.PARAMETER directory
|
||||
Directory containing files for which to generate SRI hashes. Can be filtered using the 'filter' parameter.
|
||||
EXAMPLE: $env:userprofile\myWebSite\css
|
||||
EXAMPLE: C:\Websites\Website1\js
|
||||
|
||||
.PARAMETER filter
|
||||
Process only files matching this criteria. Only relevant for directory operations.
|
||||
DEFAULT: * (all files)
|
||||
EXAMPLE: *.css
|
||||
EXAMPLE: script-site1*.js
|
||||
ALIAS: only, include
|
||||
|
||||
.PARAMETER hashAlgo
|
||||
Use the specified algorithm to generate SRI hashes. Accepts sha256, sha384 (default), sha512.
|
||||
DEFAULT: sha384
|
||||
ALIAS: algorithm
|
||||
|
||||
.EXAMPLE
|
||||
.\sri.ps1 style.css
|
||||
Generate default SHA384 hash for 'style.css' located in the current directory.
|
||||
|
||||
.EXAMPLE
|
||||
.\sri.ps1 style.css, c:\websites\css\menu.css, $env:userprofile\Documents\website\script.js
|
||||
Generate default SHA384 hashes for 'style.css' in the current directory along with the other two files as specified by their full paths.
|
||||
|
||||
.EXAMPLE
|
||||
.\sri.ps1 -directory c:\website\css -hashAlgo sha256
|
||||
Generate SHA256 hashes for all files in the 'C:\Website\css' directory
|
||||
|
||||
.EXAMPLE
|
||||
.\sri.ps1 -dir c:\website\includes -filter *.js -algo sha512
|
||||
Generate SHA512 hashes (partial alias used for '-hashAlgo') for all files matching '*.js' in directory 'C:\website\includes'
|
||||
|
||||
.EXAMPLE
|
||||
.\sri.ps1 -files img\logo.svg, media\video.mp4 -directory css
|
||||
Generate default SHA384 hashes for 'logo.svg' and 'video.mp4' in sub-folders 'img' and 'media', respectively, of the current folder. Then also generate hashes for all files in folder 'css', also a sub-folder of the current folder.
|
||||
#>
|
||||
|
||||
|
||||
param (
|
||||
# List of files to hash
|
||||
[Parameter(HelpMessage="Comma-separated list of files to hash.")]
|
||||
@ -12,9 +68,9 @@ param (
|
||||
[string]
|
||||
$directory,
|
||||
|
||||
# File filter
|
||||
# File filter to apply to directory operations
|
||||
[Parameter(HelpMessage="Only hash files of this type, relevant only when processing a directory.")]
|
||||
[Alias("only")]
|
||||
[Alias("only", "include")]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]
|
||||
$filter = '*',
|
||||
@ -27,6 +83,7 @@ param (
|
||||
$hashAlgo = 'sha384'
|
||||
)
|
||||
|
||||
|
||||
function displayError($returnCode, $eMsg){
|
||||
Write-Host "`nERROR: $eMsg" -ForegroundColor Red
|
||||
Write-Host "Exiting.`n" -ForegroundColor Red
|
||||
|
Loading…
Reference in New Issue
Block a user