From cdf1a0e0968feb7bdcd29e0719656c7080067bea Mon Sep 17 00:00:00 2001 From: James Brundage <@github.com> Date: Mon, 8 May 2023 13:41:03 -0700 Subject: [PATCH 01/42] Updating build and adding new Splatter logo (Fixes #12) --- .github/workflows/TestBuildAndPublish.yml | 194 +++++++++++++++++---- Build/Splatter.GitHubWorkflow.PSDevOps.ps1 | 8 + GitHub/Jobs/BuildSplatter.psd1 | 27 +++ Splatter.PSSVG.ps1 | 61 +++++++ 4 files changed, 255 insertions(+), 35 deletions(-) create mode 100644 Build/Splatter.GitHubWorkflow.PSDevOps.ps1 create mode 100644 GitHub/Jobs/BuildSplatter.psd1 create mode 100644 Splatter.PSSVG.ps1 diff --git a/.github/workflows/TestBuildAndPublish.yml b/.github/workflows/TestBuildAndPublish.yml index 419c9cf..1f4d131 100644 --- a/.github/workflows/TestBuildAndPublish.yml +++ b/.github/workflows/TestBuildAndPublish.yml @@ -1,8 +1,9 @@ - -name: Test Build And Publish + +name: Analyze, Test, Tag, and Publish on: - workflow_dispatch: push: + pull_request: + workflow_dispatch: jobs: PowerShellStaticAnalysis: runs-on: ubuntu-latest @@ -124,6 +125,8 @@ jobs: $Parameters = @{} $Parameters.ModulePath = ${env:ModulePath} $Parameters.PesterMaxVersion = ${env:PesterMaxVersion} + $Parameters.NoCoverage = ${env:NoCoverage} + $Parameters.NoCoverage = $parameters.NoCoverage -match 'true'; foreach ($k in @($parameters.Keys)) { if ([String]::IsNullOrEmpty($parameters[$k])) { $parameters.Remove($k) @@ -142,7 +145,11 @@ jobs: $ModulePath, # The Pester max version. By default, this is pinned to 4.99.99. [string] - $PesterMaxVersion = '4.99.99' + $PesterMaxVersion = '4.99.99', + + # If set, will not collect code coverage. + [switch] + $NoCoverage ) $global:ErrorActionPreference = 'continue' @@ -154,11 +161,18 @@ jobs: $importedModule = Import-Module $ModulePath -Force -PassThru $importedPester, $importedModule | Out-Host + $codeCoverageParameters = @{ + CodeCoverage = "$($importedModule | Split-Path)\*-*.ps1" + CodeCoverageOutputFile = ".\$moduleName.Coverage.xml" + } + + if ($NoCoverage) { + $codeCoverageParameters = @{} + } $result = - Invoke-Pester -PassThru -Verbose -OutputFile ".\$moduleName.TestResults.xml" -OutputFormat NUnitXml ` - -CodeCoverage "$($importedModule | Split-Path)\*-*.ps1" -CodeCoverageOutputFile ".\$moduleName.Coverage.xml" + Invoke-Pester -PassThru -Verbose -OutputFile ".\$moduleName.TestResults.xml" -OutputFormat NUnitXml @codeCoverageParameters "::set-output name=TotalCount::$($result.TotalCount)", "::set-output name=PassedCount::$($result.PassedCount)", @@ -238,7 +252,7 @@ jobs: if (-not ($gitHubEvent.head_commit.message -match "Merge Pull Request #(?\d+)") -and (-not $gitHubEvent.psobject.properties['inputs'])) { - "::warning::Pull Request has not merged, skipping" | Out-Host + "::warning::Pull Request has not merged, skipping Tagging" | Out-Host return } @@ -291,6 +305,9 @@ jobs: $Parameters.UserEmail = ${env:UserEmail} $Parameters.UserName = ${env:UserName} $Parameters.TagVersionFormat = ${env:TagVersionFormat} + $Parameters.ReleaseNameFormat = ${env:ReleaseNameFormat} + $Parameters.ReleaseAsset = ${env:ReleaseAsset} + $Parameters.ReleaseAsset = $parameters.ReleaseAsset -split ';' -replace '^[''"]' -replace '[''"]$' foreach ($k in @($parameters.Keys)) { if ([String]::IsNullOrEmpty($parameters[$k])) { $parameters.Remove($k) @@ -312,7 +329,15 @@ jobs: # The tag version format (default value: 'v$(imported.Version)') # This can expand variables. $imported will contain the imported module. [string] - $TagVersionFormat = 'v$($imported.Version)' + $TagVersionFormat = 'v$($imported.Version)', + + # The release name format (default value: '$($imported.Name) $($imported.Version)') + [string] + $ReleaseNameFormat = '$($imported.Name) $($imported.Version)', + + # Any assets to attach to the release. Can be a wildcard or file name. + [string[]] + $ReleaseAsset ) @@ -329,7 +354,7 @@ jobs: if (-not ($gitHubEvent.head_commit.message -match "Merge Pull Request #(?\d+)") -and (-not $gitHubEvent.psobject.properties['inputs'])) { - "::warning::Pull Request has not merged, skipping" | Out-Host + "::warning::Pull Request has not merged, skipping GitHub release" | Out-Host return } @@ -348,6 +373,7 @@ jobs: $targetVersion =$ExecutionContext.InvokeCommand.ExpandString($TagVersionFormat) $targetReleaseName = $targetVersion $releasesURL = 'https://api.github.com/repos/${{github.repository}}/releases' + "Release URL: $releasesURL" | Out-Host $listOfReleases = Invoke-RestMethod -Uri $releasesURL -Method Get -Headers @{ "Accept" = "application/vnd.github.v3+json" "Authorization" = 'Bearer ${{ secrets.GITHUB_TOKEN }}' @@ -357,32 +383,80 @@ jobs: if ($releaseExists) { "::warning::Release '$($releaseExists.Name )' Already Exists" | Out-Host - return + $releasedIt = $releaseExists + } else { + $releasedIt = Invoke-RestMethod -Uri $releasesURL -Method Post -Body ( + [Ordered]@{ + owner = '${{github.owner}}' + repo = '${{github.repository}}' + tag_name = $targetVersion + name = $ExecutionContext.InvokeCommand.ExpandString($ReleaseNameFormat) + body = + if ($env:RELEASENOTES) { + $env:RELEASENOTES + } elseif ($imported.PrivateData.PSData.ReleaseNotes) { + $imported.PrivateData.PSData.ReleaseNotes + } else { + "$($imported.Name) $targetVersion" + } + draft = if ($env:RELEASEISDRAFT) { [bool]::Parse($env:RELEASEISDRAFT) } else { $false } + prerelease = if ($env:PRERELEASE) { [bool]::Parse($env:PRERELEASE) } else { $false } + } | ConvertTo-Json + ) -Headers @{ + "Accept" = "application/vnd.github.v3+json" + "Content-type" = "application/json" + "Authorization" = 'Bearer ${{ secrets.GITHUB_TOKEN }}' + } } - Invoke-RestMethod -Uri $releasesURL -Method Post -Body ( - [Ordered]@{ - owner = '${{github.owner}}' - repo = '${{github.repository}}' - tag_name = $targetVersion - name = "$($imported.Name) $targetVersion" - body = - if ($env:RELEASENOTES) { - $env:RELEASENOTES - } elseif ($imported.PrivateData.PSData.ReleaseNotes) { - $imported.PrivateData.PSData.ReleaseNotes - } else { - "$($imported.Name) $targetVersion" + + + + if (-not $releasedIt) { + throw "Release failed" + } else { + $releasedIt | Out-Host + } + + $releaseUploadUrl = $releasedIt.upload_url -replace '\{.+$' + + if ($ReleaseAsset) { + $fileList = Get-ChildItem -Recurse + $filesToRelease = + @(:nextFile foreach ($file in $fileList) { + foreach ($relAsset in $ReleaseAsset) { + if ($relAsset -match '[\*\?]') { + if ($file.Name -like $relAsset) { + $file; continue nextFile + } + } elseif ($file.Name -eq $relAsset -or $file.FullName -eq $relAsset) { + $file; continue nextFile + } } - draft = if ($env:RELEASEISDRAFT) { [bool]::Parse($env:RELEASEISDRAFT) } else { $false } - prerelease = if ($env:PRERELEASE) { [bool]::Parse($env:PRERELEASE) } else { $false } - } | ConvertTo-Json - ) -Headers @{ - "Accept" = "application/vnd.github.v3+json" - "Content-type" = "application/json" - "Authorization" = 'Bearer ${{ secrets.GITHUB_TOKEN }}' + }) + + $releasedFiles = @{} + foreach ($file in $filesToRelease) { + if ($releasedFiles[$file.Name]) { + Write-Warning "Already attached file $($file.Name)" + continue + } else { + $fileBytes = [IO.File]::ReadAllBytes($file.FullName) + $releasedFiles[$file.Name] = + Invoke-RestMethod -Uri "${releaseUploadUrl}?name=$($file.Name)" -Headers @{ + "Accept" = "application/vnd.github+json" + "Authorization" = 'Bearer ${{ secrets.GITHUB_TOKEN }}' + } -Body $fileBytes -ContentType Application/octet-stream + $releasedFiles[$file.Name] + } + } + + "Attached $($releasedFiles.Count) file(s) to release" | Out-Host } + + + } @Parameters - name: PublishPowerShellGallery id: PublishPowerShellGallery @@ -390,6 +464,8 @@ jobs: run: | $Parameters = @{} $Parameters.ModulePath = ${env:ModulePath} + $Parameters.Exclude = ${env:Exclude} + $Parameters.Exclude = $parameters.Exclude -split ';' -replace '^[''"]' -replace '[''"]$' foreach ($k in @($parameters.Keys)) { if ([String]::IsNullOrEmpty($parameters[$k])) { $parameters.Remove($k) @@ -398,12 +474,20 @@ jobs: Write-Host "::debug:: PublishPowerShellGallery $(@(foreach ($p in $Parameters.GetEnumerator()) {'-' + $p.Key + ' ' + $p.Value}) -join ' ')" & {param( [string] - $ModulePath + $ModulePath, + + [string[]] + $Exclude = @('*.png', '*.mp4', '*.jpg','*.jpeg', '*.gif', 'docs[/\]*') ) + $gitHubEvent = if ($env:GITHUB_EVENT_PATH) { [IO.File]::ReadAllText($env:GITHUB_EVENT_PATH) | ConvertFrom-Json } else { $null } + if (-not $Exclude) { + $Exclude = @('*.png', '*.mp4', '*.jpg','*.jpeg', '*.gif','docs[/\]*') + } + @" ::group::GitHubEvent @@ -411,9 +495,15 @@ jobs: ::endgroup:: "@ | Out-Host + @" + ::group::PSBoundParameters + $($PSBoundParameters | ConvertTo-Json -Depth 100) + ::endgroup:: + "@ | Out-Host + if (-not ($gitHubEvent.head_commit.message -match "Merge Pull Request #(?\d+)") -and (-not $gitHubEvent.psobject.properties['inputs'])) { - "::warning::Pull Request has not merged, skipping" | Out-Host + "::warning::Pull Request has not merged, skipping Gallery Publish" | Out-Host return } @@ -428,9 +518,9 @@ jobs: if (-not $imported) { return } - $foundModule = try { Find-Module -Name $imported.Name -ErrorAction SilentlyContinue } catch {} + $foundModule = try { Find-Module -Name $imported.Name -ErrorAction SilentlyContinue} catch {} - if ($foundModule -and $foundModule.Version -ge $imported.Version) { + if ($foundModule -and (([Version]$foundModule.Version) -ge ([Version]$imported.Version))) { "::warning::Gallery Version of $moduleName is more recent ($($foundModule.Version) >= $($imported.Version))" | Out-Host } else { @@ -453,9 +543,24 @@ jobs: if (Test-Path $moduleGitPath) { Remove-Item -Recurse -Force $moduleGitPath } + + if ($Exclude) { + "::notice::Attempting to Exlcude $exclude" | Out-Host + Get-ChildItem $moduleTempPath -Recurse | + Where-Object { + foreach ($ex in $exclude) { + if ($_.FullName -like $ex) { + "::notice::Excluding $($_.FullName)" | Out-Host + return $true + } + } + } | + Remove-Item + } + Write-Host "Module Files:" Get-ChildItem $moduleTempPath -Recurse - Write-Host "Publishing $moduleName [$($imported.Version)] to Gallery" + Write-Host "Publishing $moduleName [$($imported.Version)] to Gallery" Publish-Module -Path $moduleTempPath -NuGetApiKey $gk if ($?) { Write-Host "Published to Gallery" @@ -465,4 +570,23 @@ jobs: } } } @Parameters + BuildSplatter: + runs-on: ubuntu-latest + if: ${{ success() }} + steps: + - name: Check out repository + uses: actions/checkout@v2 + - name: GitLogger + uses: GitLogging/GitLoggerAction@main + id: GitLogger + - name: Use PSSVG Action + uses: StartAutomating/PSSVG@main + id: PSSVG + - name: BuildPipeScript + uses: StartAutomating/PipeScript@main + - name: UseEZOut + uses: StartAutomating/EZOut@master + - name: Run HelpOut + uses: StartAutomating/HelpOut@master + id: HelpOut diff --git a/Build/Splatter.GitHubWorkflow.PSDevOps.ps1 b/Build/Splatter.GitHubWorkflow.PSDevOps.ps1 new file mode 100644 index 0000000..9dcf041 --- /dev/null +++ b/Build/Splatter.GitHubWorkflow.PSDevOps.ps1 @@ -0,0 +1,8 @@ +#requires -Module PSDevOps +Import-BuildStep -ModuleName Splatter +Push-Location ($PSScriptRoot | Split-Path) +New-GitHubWorkflow -Name "Analyze, Test, Tag, and Publish" -On Push, PullRequest, Demand -Job PowerShellStaticAnalysis, + TestPowerShellOnLinux, + TagReleaseAndPublish, + BuildSplatter -OutputPath .\.github\workflows\TestBuildAndPublish.yml +Pop-Location \ No newline at end of file diff --git a/GitHub/Jobs/BuildSplatter.psd1 b/GitHub/Jobs/BuildSplatter.psd1 new file mode 100644 index 0000000..cf4b7ac --- /dev/null +++ b/GitHub/Jobs/BuildSplatter.psd1 @@ -0,0 +1,27 @@ +@{ + "runs-on" = "ubuntu-latest" + if = '${{ success() }}' + steps = @( + @{ + name = 'Check out repository' + uses = 'actions/checkout@v2' + }, + @{ + name = 'GitLogger' + uses = 'GitLogging/GitLoggerAction@main' + id = 'GitLogger' + }, + @{ + name = 'Use PSSVG Action' + uses = 'StartAutomating/PSSVG@main' + id = 'PSSVG' + }, + 'RunPipeScript', + 'RunEZOut', + @{ + name = 'Run HelpOut' + uses = 'StartAutomating/HelpOut@master' + id = 'HelpOut' + } + ) +} \ No newline at end of file diff --git a/Splatter.PSSVG.ps1 b/Splatter.PSSVG.ps1 new file mode 100644 index 0000000..0386b57 --- /dev/null +++ b/Splatter.PSSVG.ps1 @@ -0,0 +1,61 @@ +#requires -Module PSSVG + +$psChevron = + svg.symbol -Id psChevron -Content @( + svg.polygon -Points (@( + "40,20" + "45,20" + "60,50" + "35,80" + "32.5,80" + "55,50" + ) -join ' ') + ) -ViewBox 100, 100 -PreserveAspectRatio $false + +$assetsPath = Join-Path $PSScriptRoot assets + +if (-not (Test-Path $assetsPath)) { + $null = New-item -ItemType Directory -Path $assetsPath +} + +$FontName = 'Dancing Script' +svg -ViewBox 300, 100 @( + $psChevron + svg.use -Href '#psChevron' -Fill '#b00707' -Height 5% -Y 47% -X -1.5% + SVG.GoogleFont -FontName $FontName + + svg.text -X 50% -Y 50% -TextAnchor 'middle' -DominantBaseline 'middle' -Style "font-family: '$FontName', sans-serif" -Fill '#b00707' -Class 'foreground-fill' -Content @( + SVG.tspan -FontSize .5em -Content 'spl@tter' + # SVG.tspan -FontSize 1em -Content 'git' -Dx -.25em + ) -FontSize 4em -FontWeight 500 +) -OutputPath (Join-Path $assetsPath Splatter.svg) + +svg -ViewBox 1920, 1080 @( + $psChevron + svg.use -Href '#psChevron' -Fill '#b00707' -Height 10% -Y 43% -X -5% + SVG.GoogleFont -FontName $FontName + + svg.text -X 50% -Y 50% -TextAnchor 'middle' -DominantBaseline 'middle' -Style "font-family: '$FontName', sans-serif" -Fill '#b00707' -Class 'foreground-fill' -Content @( + SVG.tspan -FontSize .5em -Content 'spl@tter' + # SVG.tspan -FontSize 1em -Content 'git' -Dx -.25em + ) -FontSize 90em -FontWeight 500 +) -OutputPath (Join-Path $assetsPath 'Splatter@1080p.svg') + + +$AnimationTimeframe = [Ordered]@{ + Dur = '2s' + RepeatCount = 'indefinite' +} + +svg -ViewBox 1920, 1080 @( + $psChevron + svg.use -Href '#psChevron' -Fill '#b00707' -Height 10% -Y 43% -X -5% + SVG.GoogleFont -FontName $FontName + + svg.text -X 50% -Y 50% -TextAnchor 'middle' -DominantBaseline 'middle' -Style "font-family: '$FontName', sans-serif; " -Fill '#b00707' -Class 'foreground-fill' -Content @( + SVG.tspan -FontSize .5em -Content 'spl@tter' + # SVG.tspan -FontSize 1em -Content 'git' -Dx -.25em + SVG.animate -AttributeName fill -dur 10s -Values '#b00707;#b01707;#ed2222;#b01707;#b00707' -RepeatCount indefinite + ) -FontSize 90em -FontWeight 500 +) -OutputPath (Join-Path $assetsPath 'Splatter@1080p-Animated.svg') + From fcedadf0e84ab449c3b51018f75cc7dabf08eb97 Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 20:42:14 +0000 Subject: [PATCH 02/42] Updating build and adding new Splatter logo (Fixes #12) --- assets/Splatter.svg | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 assets/Splatter.svg diff --git a/assets/Splatter.svg b/assets/Splatter.svg new file mode 100644 index 0000000..4eac01f --- /dev/null +++ b/assets/Splatter.svg @@ -0,0 +1,11 @@ + + + + + + + + + spl@tter + + From 7e759ae626d7fbfc9456d2cd3228236b08d47884 Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 20:42:14 +0000 Subject: [PATCH 03/42] Updating build and adding new Splatter logo (Fixes #12) --- assets/Splatter@1080p.svg | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 assets/Splatter@1080p.svg diff --git a/assets/Splatter@1080p.svg b/assets/Splatter@1080p.svg new file mode 100644 index 0000000..7d790c7 --- /dev/null +++ b/assets/Splatter@1080p.svg @@ -0,0 +1,11 @@ + + + + + + + + + spl@tter + + From e958abe2e0c820758c5d44c75dd0160319fb1c65 Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 20:42:14 +0000 Subject: [PATCH 04/42] Updating build and adding new Splatter logo (Fixes #12) --- assets/Splatter@1080p-Animated.svg | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 assets/Splatter@1080p-Animated.svg diff --git a/assets/Splatter@1080p-Animated.svg b/assets/Splatter@1080p-Animated.svg new file mode 100644 index 0000000..e957514 --- /dev/null +++ b/assets/Splatter@1080p-Animated.svg @@ -0,0 +1,12 @@ + + + + + + + + + spl@tter + + + From 282068ebfad32ee3cf872497a07dfde8f1b2926b Mon Sep 17 00:00:00 2001 From: James Brundage <@github.com> Date: Mon, 8 May 2023 13:44:26 -0700 Subject: [PATCH 05/42] Fixing Assets directory case (re #12) --- Splatter.PSSVG.ps1 | 2 +- assets/Splatter.svg | 11 ----------- assets/Splatter@1080p-Animated.svg | 12 ------------ assets/Splatter@1080p.svg | 11 ----------- 4 files changed, 1 insertion(+), 35 deletions(-) delete mode 100644 assets/Splatter.svg delete mode 100644 assets/Splatter@1080p-Animated.svg delete mode 100644 assets/Splatter@1080p.svg diff --git a/Splatter.PSSVG.ps1 b/Splatter.PSSVG.ps1 index 0386b57..60809f4 100644 --- a/Splatter.PSSVG.ps1 +++ b/Splatter.PSSVG.ps1 @@ -12,7 +12,7 @@ $psChevron = ) -join ' ') ) -ViewBox 100, 100 -PreserveAspectRatio $false -$assetsPath = Join-Path $PSScriptRoot assets +$assetsPath = Join-Path $PSScriptRoot Assets if (-not (Test-Path $assetsPath)) { $null = New-item -ItemType Directory -Path $assetsPath diff --git a/assets/Splatter.svg b/assets/Splatter.svg deleted file mode 100644 index 4eac01f..0000000 --- a/assets/Splatter.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - spl@tter - - diff --git a/assets/Splatter@1080p-Animated.svg b/assets/Splatter@1080p-Animated.svg deleted file mode 100644 index e957514..0000000 --- a/assets/Splatter@1080p-Animated.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - spl@tter - - - diff --git a/assets/Splatter@1080p.svg b/assets/Splatter@1080p.svg deleted file mode 100644 index 7d790c7..0000000 --- a/assets/Splatter@1080p.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - spl@tter - - From c5bacdcf5052cc510f60e0deaf2b6b3a245168e9 Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 20:45:13 +0000 Subject: [PATCH 06/42] Fixing Assets directory case (re #12) --- Assets/Splatter.svg | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 Assets/Splatter.svg diff --git a/Assets/Splatter.svg b/Assets/Splatter.svg new file mode 100644 index 0000000..4eac01f --- /dev/null +++ b/Assets/Splatter.svg @@ -0,0 +1,11 @@ + + + + + + + + + spl@tter + + From 095f6610b073200cb8afaff13f2a3d729b3ba49f Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 20:45:13 +0000 Subject: [PATCH 07/42] Fixing Assets directory case (re #12) --- Assets/Splatter@1080p.svg | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 Assets/Splatter@1080p.svg diff --git a/Assets/Splatter@1080p.svg b/Assets/Splatter@1080p.svg new file mode 100644 index 0000000..7d790c7 --- /dev/null +++ b/Assets/Splatter@1080p.svg @@ -0,0 +1,11 @@ + + + + + + + + + spl@tter + + From 457cd7a4c4316e29b2105728caab5498432b4cfe Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 20:45:13 +0000 Subject: [PATCH 08/42] Fixing Assets directory case (re #12) --- Assets/Splatter@1080p-Animated.svg | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 Assets/Splatter@1080p-Animated.svg diff --git a/Assets/Splatter@1080p-Animated.svg b/Assets/Splatter@1080p-Animated.svg new file mode 100644 index 0000000..e957514 --- /dev/null +++ b/Assets/Splatter@1080p-Animated.svg @@ -0,0 +1,12 @@ + + + + + + + + + spl@tter + + + From 4074ec87c32397037b11a75ae33a44ce83698eae Mon Sep 17 00:00:00 2001 From: James Brundage <@github.com> Date: Mon, 8 May 2023 14:14:18 -0700 Subject: [PATCH 09/42] Get-Splat - Coercing all dictionaries into [Ordered] PSCustomObjects (Fixes #13) --- Get-Splat.ps1 | 56 ++++++++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 30 deletions(-) diff --git a/Get-Splat.ps1 b/Get-Splat.ps1 index ed70d30..8fe76b3 100644 --- a/Get-Splat.ps1 +++ b/Get-Splat.ps1 @@ -40,10 +40,10 @@ if (-not ${script:_@pp}) { ${script:_@pp} = @{} } # * All Pipelined Parameters $ValidateAttributes = { param( - [Parameter(Mandatory)]$value, + [Parameter(Mandatory)]$value, [Parameter(Mandatory)]$attributes ) - + foreach ($attr in $attributes) { $_ = $this = $value if ($attr -is [Management.Automation.ValidateScriptAttribute]) { @@ -52,27 +52,23 @@ $attr } } - elseif ($attr -is [Management.Automation.ValidatePatternAttribute] -and + elseif ($attr -is [Management.Automation.ValidatePatternAttribute] -and (-not [Regex]::new($attr.RegexPattern, $attr.Options, '00:00:05').IsMatch($value)) ) { $attr } - elseif ($attr -is [Management.Automation.ValidateSetAttribute] -and + elseif ($attr -is [Management.Automation.ValidateSetAttribute] -and $attr.ValidValues -notcontains $value) { $attr } elseif ($attr -is [Management.Automation.ValidateRangeAttribute] -and ( ($value -gt $attr.MaxRange) -or ($value -lt $attr.MinRange) - )) {$attr} + )) {$attr} } } } process { - + $ap,$ac,$amp = ${script:_@p},${script:_@c}, ${script:_@mp} #region Turn dictionaries into PSObjects if ($Splat -is [Collections.IDictionary]) { - if ($splat.GetType().Name -ne 'PSBoundParametersDictionary') { - $Splat = [PSCustomObject]$Splat - } else { - $splat = [PSCustomObject]([Ordered]@{} + $Splat) - } + $splat = [PSCustomObject]([Ordered]@{} + $Splat) } #endregion Turn dictionaries into PSObjects @@ -113,15 +109,15 @@ foreach ($param in $cmd.Parameters.Values) { foreach ($attr in $param.Attributes) { if ($attr.ValueFromPipeline) { - $param + $param } } }) } - + $cmdMd = $cmd -as [Management.Automation.CommandMetaData] $problems = @( - + foreach ($vfp in ${script:_@pp}.$cmd) { if ($in -is $vfp.ParameterType -or ($vfp.ParameterType.IsArray -and $in -as $vfp.ParameterType) @@ -133,14 +129,14 @@ } if (-not $badAttributes -or $Force) { $null = $params.Add($vfp.Name) - $pipe[$vfp.Name] = $v + $pipe[$vfp.Name] = $v $outSplat[$vfp.Name] = $v $paramMap[$vfp.Name] = $vfp.Name - $pipelineParameterSets = - @(foreach ($attr in $vfp.Attributes) { + $pipelineParameterSets = + @(foreach ($attr in $vfp.Attributes) { if ($attr.ParameterSetName) { $attr.ParameterSetName} }) - } + } } } @@ -165,14 +161,14 @@ } } - if (-not $param) { + if (-not $param) { $pn - continue + continue } $paramMap[$param.Name] = $pn if ($params -contains $param) { continue } $pt=$param.ParameterType - $paramSets = + $paramSets = @(foreach ($attr in $param.Attributes) { if ($attr.ParameterSetName) { $attr.ParameterSetName } }) @@ -200,10 +196,10 @@ if ($nv -is [PSVariable] -or $Force) { $null = $params.Add($param) :CanItPipe do { - foreach ($attr in $param.Attributes) { - if ($attr.ValueFromPipeline -or $attr.ValueFromPipelineByPropertyName -and + foreach ($attr in $param.Attributes) { + if ($attr.ValueFromPipeline -or $attr.ValueFromPipelineByPropertyName -and ((-not $pipelineParameterSets) -or ($pipelineParameterSets -contains $attr.ParameterSetName)) - ) { + ) { $pipe[$prop.Name] = $v break CanItPipe } @@ -219,17 +215,17 @@ } }) - + $Mandatory = @{} - + foreach ($param in $cmdMd.Parameters.Values) { foreach ($a in $param.Attributes) { if (-not $a.Mandatory) { continue } if ($a -isnot [Management.Automation.ParameterAttribute]) { continue } if (-not $Mandatory[$a.ParameterSetName]) { $Mandatory[$a.ParameterSetName] = [Ordered]@{} } $mp = ($paramMap.($param.Name)) - $Mandatory[$a.ParameterSetName].($param.Name) = - if ($mp) { + $Mandatory[$a.ParameterSetName].($param.Name) = + if ($mp) { if ($pipelineParameterName -contains $param.Name) { $in } else { @@ -238,8 +234,8 @@ } } } - $amp.$cmd = $Mandatory - + $amp.$cmd = $Mandatory + $mandatory = $amp.$cmd $missingMandatory = @{} From 44916b9d031349120a2e477f798f703966807946 Mon Sep 17 00:00:00 2001 From: James Brundage <@github.com> Date: Mon, 8 May 2023 14:21:45 -0700 Subject: [PATCH 10/42] Splatter Logo - falling back to cursive font-family (re #12) --- Splatter.PSSVG.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Splatter.PSSVG.ps1 b/Splatter.PSSVG.ps1 index 60809f4..4ae6701 100644 --- a/Splatter.PSSVG.ps1 +++ b/Splatter.PSSVG.ps1 @@ -24,7 +24,7 @@ svg -ViewBox 300, 100 @( svg.use -Href '#psChevron' -Fill '#b00707' -Height 5% -Y 47% -X -1.5% SVG.GoogleFont -FontName $FontName - svg.text -X 50% -Y 50% -TextAnchor 'middle' -DominantBaseline 'middle' -Style "font-family: '$FontName', sans-serif" -Fill '#b00707' -Class 'foreground-fill' -Content @( + svg.text -X 50% -Y 50% -TextAnchor 'middle' -DominantBaseline 'middle' -Style "font-family: '$FontName', cursive" -Fill '#b00707' -Class 'foreground-fill' -Content @( SVG.tspan -FontSize .5em -Content 'spl@tter' # SVG.tspan -FontSize 1em -Content 'git' -Dx -.25em ) -FontSize 4em -FontWeight 500 @@ -35,7 +35,7 @@ svg -ViewBox 1920, 1080 @( svg.use -Href '#psChevron' -Fill '#b00707' -Height 10% -Y 43% -X -5% SVG.GoogleFont -FontName $FontName - svg.text -X 50% -Y 50% -TextAnchor 'middle' -DominantBaseline 'middle' -Style "font-family: '$FontName', sans-serif" -Fill '#b00707' -Class 'foreground-fill' -Content @( + svg.text -X 50% -Y 50% -TextAnchor 'middle' -DominantBaseline 'middle' -Style "font-family: '$FontName', cursive" -Fill '#b00707' -Class 'foreground-fill' -Content @( SVG.tspan -FontSize .5em -Content 'spl@tter' # SVG.tspan -FontSize 1em -Content 'git' -Dx -.25em ) -FontSize 90em -FontWeight 500 @@ -52,7 +52,7 @@ svg -ViewBox 1920, 1080 @( svg.use -Href '#psChevron' -Fill '#b00707' -Height 10% -Y 43% -X -5% SVG.GoogleFont -FontName $FontName - svg.text -X 50% -Y 50% -TextAnchor 'middle' -DominantBaseline 'middle' -Style "font-family: '$FontName', sans-serif; " -Fill '#b00707' -Class 'foreground-fill' -Content @( + svg.text -X 50% -Y 50% -TextAnchor 'middle' -DominantBaseline 'middle' -Style "font-family: '$FontName', cursive; " -Fill '#b00707' -Class 'foreground-fill' -Content @( SVG.tspan -FontSize .5em -Content 'spl@tter' # SVG.tspan -FontSize 1em -Content 'git' -Dx -.25em SVG.animate -AttributeName fill -dur 10s -Values '#b00707;#b01707;#ed2222;#b01707;#b00707' -RepeatCount indefinite From d5e428f3d3d4b0aab482afaaafc0250821846b11 Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:23:18 +0000 Subject: [PATCH 11/42] Splatter Logo - falling back to cursive font-family (re #12) --- Assets/Splatter.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Splatter.svg b/Assets/Splatter.svg index 4eac01f..7064c4a 100644 --- a/Assets/Splatter.svg +++ b/Assets/Splatter.svg @@ -5,7 +5,7 @@ - + spl@tter From 79a72d348ccdb8335c268fb49d69605f514a8f18 Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:23:18 +0000 Subject: [PATCH 12/42] Splatter Logo - falling back to cursive font-family (re #12) --- Assets/Splatter@1080p.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Splatter@1080p.svg b/Assets/Splatter@1080p.svg index 7d790c7..ef2cbd4 100644 --- a/Assets/Splatter@1080p.svg +++ b/Assets/Splatter@1080p.svg @@ -5,7 +5,7 @@ - + spl@tter From 6afd581755b09cf18c804f33640d13a5345fb109 Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:23:18 +0000 Subject: [PATCH 13/42] Splatter Logo - falling back to cursive font-family (re #12) --- Assets/Splatter@1080p-Animated.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Splatter@1080p-Animated.svg b/Assets/Splatter@1080p-Animated.svg index e957514..33e4cb2 100644 --- a/Assets/Splatter@1080p-Animated.svg +++ b/Assets/Splatter@1080p-Animated.svg @@ -5,7 +5,7 @@ - + spl@tter From 344582f0bf315185bad454bcfe2d877b5d7d3f0d Mon Sep 17 00:00:00 2001 From: James Brundage <@github.com> Date: Mon, 8 May 2023 14:25:38 -0700 Subject: [PATCH 14/42] Splatter Logo - reducing font size (re #12) --- Splatter.PSSVG.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Splatter.PSSVG.ps1 b/Splatter.PSSVG.ps1 index 4ae6701..a9de3c5 100644 --- a/Splatter.PSSVG.ps1 +++ b/Splatter.PSSVG.ps1 @@ -38,7 +38,7 @@ svg -ViewBox 1920, 1080 @( svg.text -X 50% -Y 50% -TextAnchor 'middle' -DominantBaseline 'middle' -Style "font-family: '$FontName', cursive" -Fill '#b00707' -Class 'foreground-fill' -Content @( SVG.tspan -FontSize .5em -Content 'spl@tter' # SVG.tspan -FontSize 1em -Content 'git' -Dx -.25em - ) -FontSize 90em -FontWeight 500 + ) -FontSize 80em -FontWeight 500 ) -OutputPath (Join-Path $assetsPath 'Splatter@1080p.svg') @@ -56,6 +56,6 @@ svg -ViewBox 1920, 1080 @( SVG.tspan -FontSize .5em -Content 'spl@tter' # SVG.tspan -FontSize 1em -Content 'git' -Dx -.25em SVG.animate -AttributeName fill -dur 10s -Values '#b00707;#b01707;#ed2222;#b01707;#b00707' -RepeatCount indefinite - ) -FontSize 90em -FontWeight 500 + ) -FontSize 80em -FontWeight 500 ) -OutputPath (Join-Path $assetsPath 'Splatter@1080p-Animated.svg') From 0ae1ca59089f1cffadea56a0bc7b75ee6749ef5d Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:26:33 +0000 Subject: [PATCH 15/42] Splatter Logo - reducing font size (re #12) --- Assets/Splatter@1080p.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Splatter@1080p.svg b/Assets/Splatter@1080p.svg index ef2cbd4..3d9d9a4 100644 --- a/Assets/Splatter@1080p.svg +++ b/Assets/Splatter@1080p.svg @@ -5,7 +5,7 @@ - + spl@tter From 960a0a91b15fc4d61db2b6fa4f32bb783e98c361 Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:26:33 +0000 Subject: [PATCH 16/42] Splatter Logo - reducing font size (re #12) --- Assets/Splatter@1080p-Animated.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Splatter@1080p-Animated.svg b/Assets/Splatter@1080p-Animated.svg index 33e4cb2..fde65a4 100644 --- a/Assets/Splatter@1080p-Animated.svg +++ b/Assets/Splatter@1080p-Animated.svg @@ -5,7 +5,7 @@ - + spl@tter From 96fa37d676b9d6eee4d150ac1bd004364e1732b1 Mon Sep 17 00:00:00 2001 From: James Brundage <@github.com> Date: Mon, 8 May 2023 14:28:15 -0700 Subject: [PATCH 17/42] Splatter Logo - Adjusting Chevron Position (re #12) --- Splatter.PSSVG.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Splatter.PSSVG.ps1 b/Splatter.PSSVG.ps1 index a9de3c5..d68a1c0 100644 --- a/Splatter.PSSVG.ps1 +++ b/Splatter.PSSVG.ps1 @@ -32,7 +32,7 @@ svg -ViewBox 300, 100 @( svg -ViewBox 1920, 1080 @( $psChevron - svg.use -Href '#psChevron' -Fill '#b00707' -Height 10% -Y 43% -X -5% + svg.use -Href '#psChevron' -Fill '#b00707' -Height 10% -Y 43% -X -4.5% SVG.GoogleFont -FontName $FontName svg.text -X 50% -Y 50% -TextAnchor 'middle' -DominantBaseline 'middle' -Style "font-family: '$FontName', cursive" -Fill '#b00707' -Class 'foreground-fill' -Content @( @@ -49,7 +49,7 @@ $AnimationTimeframe = [Ordered]@{ svg -ViewBox 1920, 1080 @( $psChevron - svg.use -Href '#psChevron' -Fill '#b00707' -Height 10% -Y 43% -X -5% + svg.use -Href '#psChevron' -Fill '#b00707' -Height 10% -Y 43% -X -4.5% SVG.GoogleFont -FontName $FontName svg.text -X 50% -Y 50% -TextAnchor 'middle' -DominantBaseline 'middle' -Style "font-family: '$FontName', cursive; " -Fill '#b00707' -Class 'foreground-fill' -Content @( From d5ed952bd34de5268b6417915ae84543b1a02808 Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:28:56 +0000 Subject: [PATCH 18/42] Splatter Logo - Adjusting Chevron Position (re #12) --- Assets/Splatter@1080p.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Splatter@1080p.svg b/Assets/Splatter@1080p.svg index 3d9d9a4..2bbd446 100644 --- a/Assets/Splatter@1080p.svg +++ b/Assets/Splatter@1080p.svg @@ -3,7 +3,7 @@ - + spl@tter From cb690d3b20e61b31623517f396da284e05060cec Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:28:56 +0000 Subject: [PATCH 19/42] Splatter Logo - Adjusting Chevron Position (re #12) --- Assets/Splatter@1080p-Animated.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Splatter@1080p-Animated.svg b/Assets/Splatter@1080p-Animated.svg index fde65a4..b0a8929 100644 --- a/Assets/Splatter@1080p-Animated.svg +++ b/Assets/Splatter@1080p-Animated.svg @@ -3,7 +3,7 @@ - + spl@tter From 46e63aa546d5af49339a257e858a2298a799f7ac Mon Sep 17 00:00:00 2001 From: James Brundage <@github.com> Date: Mon, 8 May 2023 14:30:25 -0700 Subject: [PATCH 20/42] Adding Splatter.png (Fixes #12) --- Assets/Splatter.png | Bin 10641 -> 104905 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Assets/Splatter.png b/Assets/Splatter.png index b0b88757fe7b3571edfa54f71bcc2d4fa6f98d5e..fafc917d8f06c33b6b8e31b0f828a11211a50378 100644 GIT binary patch literal 104905 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 HkAwdORJUc& literal 10641 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 From 92b8df1ed09e23701f13916efa74173651f236d5 Mon Sep 17 00:00:00 2001 From: James Brundage <@github.com> Date: Mon, 8 May 2023 14:31:19 -0700 Subject: [PATCH 21/42] Updating Logo in README (Fixes #12) --- Assets/Splatter-16x9.png | Bin 9622 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Assets/Splatter-16x9.png diff --git a/Assets/Splatter-16x9.png b/Assets/Splatter-16x9.png deleted file mode 100644 index 7ad03a6409be8c924f40771a26072926f0ea2f1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9622 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 K=Z)%)Z~hN Date: Mon, 8 May 2023 14:31:58 -0700 Subject: [PATCH 22/42] Updating Logo in README (Fixes #12) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4522aa0..478205d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ 
- +

Simple Scripts to Supercharge Splatting

From 332025405c58e8a04b82896d9b8f3fad3821b2b0 Mon Sep 17 00:00:00 2001 From: James Brundage <@github.com> Date: Mon, 8 May 2023 14:36:59 -0700 Subject: [PATCH 23/42] Adding Splatter.HelpOut.ps1 (Fixes #14) --- Build/Splatter.HelpOut.ps1 | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 Build/Splatter.HelpOut.ps1 diff --git a/Build/Splatter.HelpOut.ps1 b/Build/Splatter.HelpOut.ps1 new file mode 100644 index 0000000..f63f044 --- /dev/null +++ b/Build/Splatter.HelpOut.ps1 @@ -0,0 +1,16 @@ +#require -Module HelpOut +Push-Location ($PSScriptRoot | Split-Path) + +$SplatterLoaded = Get-Module Splatter +if (-not $SplatterLoaded) { + $SplatterLoaded = Get-ChildItem -Recurse -Filter "*.psd1" | Where-Object Name -like 'Splatter*' | Import-Module -Name { $_.FullName } -Force -PassThru +} +if ($SplatterLoaded) { + "::notice title=ModuleLoaded::Splatter Loaded" | Out-Host +} else { + "::error:: Splatter not loaded" |Out-Host +} + +Save-MarkdownHelp -Module Splatter -SkipCommandType Alias -PassThru + +Pop-Location \ No newline at end of file From d02624b5d7e9fb81d870cac721d78297c980ca2b Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:37:53 +0000 Subject: [PATCH 24/42] Adding Splatter.HelpOut.ps1 (Fixes #14) --- docs/Find-Splat.md | 151 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 docs/Find-Splat.md diff --git a/docs/Find-Splat.md b/docs/Find-Splat.md new file mode 100644 index 0000000..2241994 --- /dev/null +++ b/docs/Find-Splat.md @@ -0,0 +1,151 @@ +Find-Splat +---------- + + + + +### Synopsis +Finds commands that can be splatted to given an input. + + + +--- + + +### Description + +Finds the commands whose input parameters match an input object, and returns an [ordered] dictionary of parameters. + + + +--- + + +### Related Links +* [Get-Splat](Get-Splat.md) + + + +* [Use-Splat](Use-Splat.md) + + + + + +--- + + +### Examples +#### EXAMPLE 1 +```PowerShell +@{Id=$pid} | Find-Splat -Global +``` + + + +--- + + +### Parameters +#### **Command** + +One or more commands. +If not provided, commands from the current module will be searched. +If there is no current module, all commands will be searched. + + + + + + +|Type |Required|Position|PipelineInput| +|------------|--------|--------|-------------| +|`[String[]]`|false |1 |false | + + + +#### **Splat** + +The splat + + + + + + +|Type |Required|Position|PipelineInput |Aliases | +|------------|--------|--------|--------------|-----------| +|`[PSObject]`|false |2 |true (ByValue)|InputObject| + + + +#### **Global** + +If set, will look for all commands, even if Find-Splat is used within a module. + + + + + + +|Type |Required|Position|PipelineInput|Aliases| +|----------|--------|--------|-------------|-------| +|`[Switch]`|false |named |false |G | + + + +#### **Local** + +If set, will look for commands within the current module. +To make this work within your own module Install-Splat. + + + + + + +|Type |Required|Position|PipelineInput|Aliases| +|----------|--------|--------|-------------|-------| +|`[Switch]`|false |named |false |L | + + + +#### **Module** + +If provided, will look for commands within any number of loaded modules. + + + + + + +|Type |Required|Position|PipelineInput|Aliases| +|------------|--------|--------|-------------|-------| +|`[String[]]`|false |named |false |M | + + + +#### **Force** + +If set, will return regardless of if parameters map, are valid, and have enough mandatory parameters + + + + + + +|Type |Required|Position|PipelineInput| +|----------|--------|--------|-------------| +|`[Switch]`|false |named |false | + + + + + +--- + + +### Syntax +```PowerShell +Find-Splat [[-Command] ] [[-Splat] ] [-Global] [-Local] [-Module ] [-Force] [] +``` From b6ec0f1ebc7c9148261f83a04b4078af867c06a6 Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:37:53 +0000 Subject: [PATCH 25/42] Adding Splatter.HelpOut.ps1 (Fixes #14) --- docs/Get-Splat.md | 113 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 docs/Get-Splat.md diff --git a/docs/Get-Splat.md b/docs/Get-Splat.md new file mode 100644 index 0000000..c521f24 --- /dev/null +++ b/docs/Get-Splat.md @@ -0,0 +1,113 @@ +Get-Splat +--------- + + + + +### Synopsis +Gets a splat + + + +--- + + +### Description + +Gets a splat for a command + + + +--- + + +### Related Links +* [Find-Splat](Find-Splat.md) + + + +* [Use-Splat](Use-Splat.md) + + + + + +--- + + +### Examples +#### EXAMPLE 1 +```PowerShell +@{id=$pid} | Get-Splat +``` + +#### EXAMPLE 2 +```PowerShell +@{id=$Pid} | ?@ # ?@ is an alias for Get-Splat +``` + +#### EXAMPLE 3 +```PowerShell +@{id=$pid} | & ${?@} # Get-Splat as a script block +``` + + + +--- + + +### Parameters +#### **Command** + +The command that is being splatted. + + + + + + +|Type |Required|Position|PipelineInput| +|--------------|--------|--------|-------------| +|`[PSObject[]]`|true |1 |false | + + + +#### **Splat** + +The input object + + + + + + +|Type |Required|Position|PipelineInput |Aliases | +|------------|--------|--------|--------------|-----------| +|`[PSObject]`|true |2 |true (ByValue)|InputObject| + + + +#### **Force** + +If set, will return regardless of if parameters map, are valid, and have enough mandatory parameters + + + + + + +|Type |Required|Position|PipelineInput| +|----------|--------|--------|-------------| +|`[Switch]`|false |named |false | + + + + + +--- + + +### Syntax +```PowerShell +Get-Splat [-Command] [-Splat] [-Force] [] +``` From 28268daac52051f31c59b447d3c2387ef81f388e Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:37:53 +0000 Subject: [PATCH 26/42] Adding Splatter.HelpOut.ps1 (Fixes #14) --- docs/Initialize-Splatter.md | 194 ++++++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 docs/Initialize-Splatter.md diff --git a/docs/Initialize-Splatter.md b/docs/Initialize-Splatter.md new file mode 100644 index 0000000..fbcdefe --- /dev/null +++ b/docs/Initialize-Splatter.md @@ -0,0 +1,194 @@ +Initialize-Splatter +------------------- + + + + +### Synopsis +Initializes an embeddable version of Splatter + + + +--- + + +### Description + +Initialize-Splatter enables you to embed Splatter into any module. + + + +--- + + +### Related Links +* [Get-Splat](Get-Splat.md) + + + +* [Find-Splat](Find-Splat.md) + + + +* [Use-Splat](Use-Splat.md) + + + +* [Merge-Splat](Merge-Splat.md) + + + + + +--- + + +### Examples +#### EXAMPLE 1 +```PowerShell +'@.ps1' # Initialize Splatter +``` + +#### EXAMPLE 2 +```PowerShell +'@.ps1' +``` + +#### EXAMPLE 3 +```PowerShell +'@.ps1' # Initialize splatter +``` + + + +--- + + +### Parameters +#### **Verb** + +The verbs to install. + + + +Valid Values: + +* Get +* Use +* Find +* Merge +* Out + + + + + + +|Type |Required|Position|PipelineInput | +|------------|--------|--------|---------------------| +|`[String[]]`|false |1 |true (ByPropertyName)| + + + +#### **Compress** + +If set, will not compress the definitions + + + + + + +|Type |Required|Position|PipelineInput |Aliases | +|----------|--------|--------|---------------------|-------------| +|`[Switch]`|false |named |true (ByPropertyName)|NoCompression| + + + +#### **Minify** + +If set, will not minify the definitions + + + + + + +|Type |Required|Position|PipelineInput |Aliases | +|----------|--------|--------|---------------------|--------------| +|`[Switch]`|false |named |true (ByPropertyName)|NoMinification| + + + +#### **NoLogo** + +If set, will not add a line of documentation linking to the module + + + + + + +|Type |Required|Position|PipelineInput | +|----------|--------|--------|---------------------| +|`[Switch]`|false |named |true (ByPropertyName)| + + + +#### **NoHelp** + +If set, will strip inline help from the commands. + + + + + + +|Type |Required|Position|PipelineInput | +|----------|--------|--------|---------------------| +|`[Switch]`|false |named |true (ByPropertyName)| + + + +#### **AsFunction** + +If set, will define the commands as functions and define aliases. +If you use this, please use the manifest or Export-ModuleMember to hide Splatter's commands. +If not set, Splatter will install as ScriptBlocks (these will not be exported from a module) + + + + + + +|Type |Required|Position|PipelineInput| +|----------|--------|--------|-------------| +|`[Switch]`|false |named |false | + + + +#### **Inline** + +If set, splatter will be defined inline. +This will not preface Splatter with a param() block and PSScriptAnalyzer suppression messages + + + + + + +|Type |Required|Position|PipelineInput| +|----------|--------|--------|-------------| +|`[Switch]`|false |named |false | + + + + + +--- + + +### Syntax +```PowerShell +Initialize-Splatter [[-Verb] ] [-Compress] [-Minify] [-NoLogo] [-NoHelp] [-AsFunction] [-Inline] [] +``` From d831997dc1279354f211cdc583231a129619db50 Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:37:54 +0000 Subject: [PATCH 27/42] Adding Splatter.HelpOut.ps1 (Fixes #14) --- docs/Merge-Splat.md | 218 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 docs/Merge-Splat.md diff --git a/docs/Merge-Splat.md b/docs/Merge-Splat.md new file mode 100644 index 0000000..11deac6 --- /dev/null +++ b/docs/Merge-Splat.md @@ -0,0 +1,218 @@ +Merge-Splat +----------- + + + + +### Synopsis +Merges one or more splats + + + +--- + + +### Description + +Merges one or more hashtables and property bags into one [ordered] hashtable. +Allows you to -Remove specific keys from any object +Allows you to -Include or -Exclude wildcards of keys (or patterns, with -RegularExpression) +Allows you to -Map additional values if a value if found. + + + +--- + + +### Related Links +* [Get-Splat](Get-Splat.md) + + + +* [Use-Splat](Use-Splat.md) + + + + + +--- + + +### Examples +#### EXAMPLE 1 +```PowerShell +@{a='b'}, @{c='d'} | Merge-Splat +``` + +#### EXAMPLE 2 +```PowerShell +[PSCustomOBject]@{a='b'}, @{c='d'} | Merge-Splat -Add @{e='f'} -Remove c +``` + +#### EXAMPLE 3 +```PowerShell +@{id=$pid} | + Use-Splat Get-Process | + Merge-Splat -Include Name +``` + +#### EXAMPLE 4 +```PowerShell +@{n=$(Get-Random) } | + Merge-Splat -Map @{ + N = { + if (-not ($_ % 2)) { @{IsEven=$true;IsOdd=$false} } + else { @{IsEven=$false;IsOdd=$true}} + } + } +``` + + + +--- + + +### Parameters +#### **Splat** + +The splat + + + + + + +|Type |Required|Position|PipelineInput |Aliases | +|--------------|--------|--------|--------------|-----------| +|`[PSObject[]]`|false |named |true (ByValue)|InputObject| + + + +#### **Add** + +Splats or objects that will be added to the splat. + + + + + + +|Type |Required|Position|PipelineInput|Aliases | +|--------------|--------|--------|-------------|----------------------| +|`[PSObject[]]`|false |1 |false |With
W
A
+| + + + +#### **Remove** + +The names of the keys to remove from the splat + + + + + + +|Type |Required|Position|PipelineInput|Aliases | +|------------|--------|--------|-------------|---------------------------------| +|`[String[]]`|false |named |false |Delete
Drop
D
R
-| + + + +#### **Include** + +Patterns of names to include in the splat. +If provided, only keys that match at least one -Include pattern will be kept. +By default, these are wildcards, unlesss -RegularExpression is passed. + + + + + + +|Type |Required|Position|PipelineInput|Aliases | +|------------|--------|--------|-------------|--------| +|`[String[]]`|false |named |false |E
EX| + + + +#### **Exclude** + +Patterns of names to exclude from the splat. +By default, these are wildcards, unlesss -RegularExpression is passed. + + + + + + +|Type |Required|Position|PipelineInput|Aliases | +|------------|--------|--------|-------------|--------| +|`[String[]]`|false |named |false |I
IN| + + + +#### **RegularExpression** + +If set, all patterns matched will be assumed to be RegularExpressions, not wildcards + + + + + + +|Type |Required|Position|PipelineInput|Aliases | +|----------|--------|--------|-------------|------------| +|`[Switch]`|false |named |false |Regex
RX| + + + +#### **Map** + +A map of new data to add. The key is the name of the original property. +The value can be any a string, a hashtable, or a script block. +If the value is a string, it will be treated as a key, and the original property will be copied to this key. +If the value is a hashtable, it will add the values contained in Map. +If the value is a ScriptBlock, it will combine the output of this script block with the splat. + + + + + + +|Type |Required|Position|PipelineInput|Aliases | +|---------------|--------|--------|-------------|-----------| +|`[IDictionary]`|false |named |false |M
ReMap| + + + +#### **Keep** + + + + +|Type |Required|Position|PipelineInput| +|----------|--------|--------|-------------| +|`[Switch]`|false |named |false | + + + +#### **Replace** + + + + +|Type |Required|Position|PipelineInput| +|----------|--------|--------|-------------| +|`[Switch]`|false |named |false | + + + + + +--- + + +### Syntax +```PowerShell +Merge-Splat [-Splat ] [[-Add] ] [-Remove ] [-Include ] [-Exclude ] [-RegularExpression] [-Map ] [-Keep] [-Replace] [] +``` From 39537aead161315dd70738f210ac79b35fa12e34 Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:37:54 +0000 Subject: [PATCH 28/42] Adding Splatter.HelpOut.ps1 (Fixes #14) --- docs/Out-Splat.md | 517 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 517 insertions(+) create mode 100644 docs/Out-Splat.md diff --git a/docs/Out-Splat.md b/docs/Out-Splat.md new file mode 100644 index 0000000..7daf7f3 --- /dev/null +++ b/docs/Out-Splat.md @@ -0,0 +1,517 @@ +Out-Splat +--------- + + + + +### Synopsis +Outputs code that splats + + + +--- + + +### Description + +Outputs a function or script that primarily calls another command. This can get messy to write by hand. + + + +--- + + +### Related Links +* [Initialize-Splatter](Initialize-Splatter.md) + + + + + +--- + + +### Examples +#### EXAMPLE 1 +```PowerShell +Out-Splat -CommandName Get-Command +``` + +#### EXAMPLE 2 +```PowerShell +Out-Splat -FunctionName Get-MyProcess -Example Get-MyProcess -CommandName Get-Process -DefaultParameter @{ + Id = '$pid' +} -ExcludeParameter * +``` + + + +--- + + +### Parameters +#### **CommandName** + +The name of the command that will be splatted + + + + + + +|Type |Required|Position|PipelineInput |Aliases| +|----------|--------|--------|---------------------|-------| +|`[String]`|true |1 |true (ByPropertyName)|Name | + + + +#### **DefaultParameter** + +A hashtable of default parameters. These will always be passed to the underlying command by name. + + + + + + +|Type |Required|Position|PipelineInput |Aliases | +|-------------|--------|--------|---------------------|-----------------| +|`[Hashtable]`|false |2 |true (ByPropertyName)|DefaultParameters| + + + +#### **ArgumentList** + +A list of arguments. These will be always be passed to the underlying commands by position. +Items starting with $ will be treated as a variable. + + + + + + +|Type |Required|Position|PipelineInput | +|------------|--------|--------|---------------------| +|`[String[]]`|false |named |true (ByPropertyName)| + + + +#### **InputParameter** + +A list of parameters names that will be inputted from the original command into the splat. +If generating a function, these parameter declarations will be copied from the underlying command. +Help for these parameters will be included as comment-based help + + + + + + +|Type |Required|Position|PipelineInput |Aliases | +|------------|--------|--------|---------------------|----------------| +|`[String[]]`|false |4 |true (ByPropertyName)|IncludeParameter| + + + +#### **ExcludeParameter** + +A list of parameters that will be excluded from the original function. +This is only valid when generating a function. +Wildcards may be used. + + + + + + +|Type |Required|Position|PipelineInput | +|------------|--------|--------|---------------------| +|`[String[]]`|false |5 |true (ByPropertyName)| + + + +#### **DefaultOverride** + +If set, values from input parameters will override default values. + + + + + + +|Type |Required|Position|PipelineInput |Aliases | +|----------|--------|--------|---------------------|---------------------------------------------------------| +|`[Switch]`|false |named |true (ByPropertyName)|OverrideDefault
OverwriteDefault
DefaultOverwrite| + + + +#### **VariableInput** + +If set, any variable with a non-null value matching the input parameters will be used to splat. +If not set, only bound parameters will be used to splat. +If no function name is provided, this will automatically be set + + + + + + +|Type |Required|Position|PipelineInput | +|----------|--------|--------|---------------------| +|`[Switch]`|false |named |true (ByPropertyName)| + + + +#### **VariableName** + +The name of the variable used to hold the splatted parameters. By default, ${CommandName}Parameters (e.g. GetHelpP + + + + + + +|Type |Required|Position|PipelineInput |Aliases | +|----------|--------|--------|---------------------|---------| +|`[String]`|false |named |true (ByPropertyName)|SplatName| + + + +#### **FunctionName** + +An optional name of a generated function. +If provided, this function will declare any input parameters specified in -InputParameter + + + + + + +|Type |Required|Position|PipelineInput | +|----------|--------|--------|---------------------| +|`[String]`|true |3 |true (ByPropertyName)| + + + +#### **Synopsis** + +The synopsis. +This is used to make comment-based help in a generated function. +By default, it is : "Wraps $CommandName" + + + + + + +|Type |Required|Position|PipelineInput | +|----------|--------|--------|---------------------| +|`[String]`|false |named |true (ByPropertyName)| + + + +#### **Description** + +The description. +This is used to make comment-based help in a generated function. + + + + + + +|Type |Required|Position|PipelineInput | +|----------|--------|--------|---------------------| +|`[String]`|false |named |true (ByPropertyName)| + + + +#### **Example** + +One or more examples. +This is used to make comment-based help in a generated function. + + + + + + +|Type |Required|Position|PipelineInput |Aliases | +|------------|--------|--------|---------------------|--------| +|`[String[]]`|false |named |true (ByPropertyName)|Examples| + + + +#### **Link** + +One or more links. +This is used to make comment-based help in a generated function. + + + + + + +|Type |Required|Position|PipelineInput |Aliases| +|------------|--------|--------|---------------------|-------| +|`[String[]]`|false |named |true (ByPropertyName)|Links | + + + +#### **Note** + +Some notes. +This is used to make comment-based help in a generated function. + + + + + + +|Type |Required|Position|PipelineInput |Aliases| +|----------|--------|--------|---------------------|-------| +|`[String]`|false |named |true (ByPropertyName)|Notes | + + + +#### **CmdletBinding** + +The CmdletBinding attribute for a new function + + + + + + +|Type |Required|Position|PipelineInput | +|----------|--------|--------|---------------------| +|`[String]`|false |named |true (ByPropertyName)| + + + +#### **OutputType** + +The [OutputType()] of a function. +If the type resolves to a [type], it's value will be provided as a [type]. +Otherwise, it will be provided as a [string] + + + + + + +|Type |Required|Position|PipelineInput | +|------------|--------|--------|---------------------| +|`[String[]]`|false |named |true (ByPropertyName)| + + + +#### **AdditionalParameter** + +A set of additional parameter declarations. +The keys are the names of the parameters, and the values can be a type and a string containing parameter binding and inline help. + + + + + + +|Type |Required|Position|PipelineInput | +|-------------|--------|--------|---------------------| +|`[Hashtable]`|false |named |true (ByPropertyName)| + + + +#### **SerializationDepth** + +The serialization depth for default parameters. By default, 2. + + + + + + +|Type |Required|Position|PipelineInput| +|----------|--------|--------|-------------| +|`[UInt32]`|false |named |false | + + + +#### **DynamicParameter** + +If set, will generate the code to collect the -CommandName input as dynamic parameters. + + + + + + +|Type |Required|Position|PipelineInput|Aliases | +|----------|--------|--------|-------------|-----------------| +|`[Switch]`|true |named |false |DynamicParameters| + + + +#### **Unpiped** + +If set, will not allow dynamic parameters to use ValueFromPipeline or ValueFromPipelineByPropertyName + + + + + + +|Type |Required|Position|PipelineInput| +|----------|--------|--------|-------------| +|`[Switch]`|false |named |false | + + + +#### **Offset** + +If provided, will offset the position of any positional parameters. + + + + + + +|Type |Required|Position|PipelineInput| +|---------|--------|--------|-------------| +|`[Int32]`|false |named |false | + + + +#### **NewParameterSetName** + +If provided, dynamic parameters will be created in a new parameter set, named $NewParameterSetName. + + + + + + +|Type |Required|Position|PipelineInput| +|----------|--------|--------|-------------| +|`[String]`|false |named |false | + + + +#### **CrossStream** + +If set, will cross errors into the output stream. +You SHOULD cross the streams when dealing with console applications, as many of them like to return output on standard error. + + + + + + +|Type |Required|Position|PipelineInput | +|----------|--------|--------|---------------------| +|`[Switch]`|false |named |true (ByPropertyName)| + + + +#### **Where** + +A script block used to filter the results + + + + + + +|Type |Required|Position|PipelineInput| +|---------------|--------|--------|-------------| +|`[ScriptBlock]`|false |named |false | + + + +#### **Begin** + +A script to run before the splatter starts + + + + + + +|Type |Required|Position|PipelineInput| +|---------------|--------|--------|-------------| +|`[ScriptBlock]`|false |named |false | + + + +#### **Process** + +A script to run on each splatter result + + + + + + +|Type |Required|Position|PipelineInput| +|---------------|--------|--------|-------------| +|`[ScriptBlock]`|false |named |false | + + + +#### **End** + +A script to run after the splat is over + + + + + + +|Type |Required|Position|PipelineInput| +|---------------|--------|--------|-------------| +|`[ScriptBlock]`|false |named |false | + + + +#### **PipeTo** + +If provided, will pipe directly into the contents of this script block. +This assumes that the first item in the script block is a command, and it will accept the output of the splat as pipelined input + + + + + + +|Type |Required|Position|PipelineInput|Aliases | +|---------------|--------|--------|-------------|-----------------| +|`[ScriptBlock]`|false |named |false |PipeInto
Pipe| + + + + + +--- + + +### Outputs +* [Management.Automation.ScriptBlock](https://learn.microsoft.com/en-us/dotnet/api/System.Management.Automation.ScriptBlock) + + + + + + +--- + + +### Syntax +```PowerShell +Out-Splat [-CommandName] [[-DefaultParameter] ] [-ArgumentList ] [[-InputParameter] ] [[-ExcludeParameter] ] [-DefaultOverride] [-VariableInput] [-VariableName ] [-SerializationDepth ] [-CrossStream] [-Where ] [-Begin ] [-Process ] [-End ] [-PipeTo ] [] +``` +```PowerShell +Out-Splat [-CommandName] [[-DefaultParameter] ] [-ArgumentList ] [[-InputParameter] ] [[-ExcludeParameter] ] [-DefaultOverride] [-VariableInput] [-VariableName ] [-FunctionName] [-Synopsis ] [-Description ] [-Example ] [-Link ] [-Note ] [-CmdletBinding ] [-OutputType ] [-AdditionalParameter ] [-SerializationDepth ] [-CrossStream] [-Where ] [-Begin ] [-Process ] [-End ] [-PipeTo ] [] +``` +```PowerShell +Out-Splat [-CommandName] [[-DefaultParameter] ] [-ArgumentList ] [[-InputParameter] ] [[-ExcludeParameter] ] [-DefaultOverride] [-VariableInput] [-VariableName ] [-SerializationDepth ] -DynamicParameter [-Unpiped] [-Offset ] [-NewParameterSetName ] [-CrossStream] [-Where ] [-Begin ] [-Process ] [-End ] [-PipeTo ] [] +``` From 0a71840a6c8726aa86e7cc26cbaac17d46506089 Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:37:54 +0000 Subject: [PATCH 29/42] Adding Splatter.HelpOut.ps1 (Fixes #14) --- docs/Use-Splat.md | 170 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 docs/Use-Splat.md diff --git a/docs/Use-Splat.md b/docs/Use-Splat.md new file mode 100644 index 0000000..e33cc01 --- /dev/null +++ b/docs/Use-Splat.md @@ -0,0 +1,170 @@ +Use-Splat +--------- + + + + +### Synopsis +Uses a splat. + + + +--- + + +### Description + +Uses a splat to call a command. +If passed from Find-Splat,Get-Splat or Test-Splat, the command will be automatically detected. +If called as .@, this will run only provided commands +If called as *@, this will run any found commands + + + +--- + + +### Related Links +* [Get-Splat](Get-Splat.md) + + + +* [Find-Splat](Find-Splat.md) + + + +* [Test-Splat](Test-Splat.md) + + + + + +--- + + +### Examples +#### EXAMPLE 1 +```PowerShell +@{id=$pid} | Use-Splat gps # When calling Use-Splat is globally imported +``` + +#### EXAMPLE 2 +```PowerShell +@{id=$pid} | & ${.@} gps # When calling Use-Splat is nested +``` + +#### EXAMPLE 3 +```PowerShell +@{LogName='System';InstanceId=43,44}, +@{LogName='Application';InstanceId=10000,10005} | + .@ Get-EventLog # get a bunch of different log events +``` + + + +--- + + +### Parameters +#### **Command** + +One or more commands + + + + + + +|Type |Required|Position|PipelineInput| +|--------------|--------|--------|-------------| +|`[PSObject[]]`|false |1 |false | + + + +#### **ArgumentList** + +Any additional positional arguments that would be passed to the command + + + + + + +|Type |Required|Position|PipelineInput| +|--------------|--------|--------|-------------| +|`[PSObject[]]`|false |2 |false | + + + +#### **Splat** + +The splat + + + + + + +|Type |Required|Position|PipelineInput | +|--------------|--------|--------|--------------| +|`[PSObject[]]`|false |named |true (ByValue)| + + + +#### **Force** + +If set, will run regardless of if parameters map, are valid, and have enough mandatory parameters. + + + + + + +|Type |Required|Position|PipelineInput| +|----------|--------|--------|-------------| +|`[Switch]`|false |named |false | + + + +#### **Best** + +If set, will run the best fit out of multiple commands. +The best fit is the command that will use the most of the input splat. + + + + + + +|Type |Required|Position|PipelineInput|Aliases | +|----------|--------|--------|-------------|------------------------------------------| +|`[Switch]`|false |named |false |BestFit
BestFitFunction
BF
BFF| + + + +#### **Stream** + +If set, will stream input into a single pipeline of each command. +The non-pipeable parameters of the first input splat will be used to start the pipeline. +By default, a command will be run once per input splat. + + + + + + +|Type |Required|Position|PipelineInput|Aliases| +|----------|--------|--------|-------------|-------| +|`[Switch]`|false |named |false |Pipe | + + + + + +--- + + +### Syntax +```PowerShell +Use-Splat [[-Command] ] [[-ArgumentList] ] [-Splat ] [-Force] [-Best] [-Stream] [] +``` From b28050b84716874f5abf9736ee8b63f2ba13e023 Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:37:54 +0000 Subject: [PATCH 30/42] Adding Splatter.HelpOut.ps1 (Fixes #14) --- docs/README.md | 202 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 docs/README.md diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..51165c1 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,202 @@ +
+ +

Simple Scripts to Supercharge Splatting

+
+ +[![Test Build And Publish](https://github.com/StartAutomating/Splatter/actions/workflows/TestBuildAndPublish.yml/badge.svg)](https://github.com/StartAutomating/Splatter/actions/workflows/TestBuildAndPublish.yml) + +## Splatter is a simple Splatting toolkit + +Splatting is a technique of passing parameters in PowerShell. + +Splatter makes splatting more powerful, flexible, and easy to use. + +With Splatter you can: +* Splat any object to any command +* Pipe splats to commands +* Validate splats +* Find commands for a splat + +Splatter is tiny, and can be easily embedded into any module, or used to generate splatting code. + +### Using Splatter + +Splatter has four core commands: +* Get-Splat (?@) +* Find-Splat (??@) +* Merge-Splat (*@) +* Use-Splat (.@) + +#### Get-Splat + +| Alias | Variables | +|-----------|----------------------------| +| ?@,gSplat | ${?@}, $gSplat, $GetSplat | + + +Get-Splat returns a Dictionary of parameters, given a command or ScriptBlock. +This only contains parameters for the command, and converts the parameters into the desired types. +Get-Splat can take any object or Dictionary as input. + + @{Id=$pid;Junk='Data'} | Get-Splat Get-Process + # -or + @{Id=$pid;Junk='Data'} | ?@ gps + # -or + @{Id=$pid;Junk='Data'} | & ${?@} gps + + +Get-Splat can take more than one command as input. +If it does, it will return the matching inputs for each command. + + @{FilePath = 'pwsh';ArgumentList = '-noprofile';PassThru=$true} | + Use-Splat Start-Process | + Add-Member NoteProperty TimeOut 15 -PassThru | + Get-Splat Wait-Process, Stop-Process + +Get-Splat will also attach a properties to the Dictionary. + +These property won't be used when calling the splat, but can be peeked at: + +| Property | Description | +|---------------|-----------------------------------------------| +| Command | The Command | +| CouldRun | If the command could run, given the splat | +| Invalid | Parameters that are invalid | +| Missing | Mandatory parameters that are missing | +| PercentFit | % of properties that map to parameters | +| Unmapped | Properties that don't map to parameters | + + + $splat = @{id=$pid;foo='bar'} | ?@ gps + $splat.Command, $splat.PercentFit, $splat.Unmapped + + +#### Find-Splat +| Alias | Variables | +|------------|----------------------------| +| ??@,fSplat | ${??@}, $fSplat, $FindSplat| + + + +Find-Splat will find commands that match a given splat, and return information about a match. + + @{id=$pid} | Find-Splat *-Process + +Find-Splat may also be scoped to a given module + + @{splat=@{}} | Find-Splat -Module Splatter + +#### Merge-Splat +| Alias | Variables | +|------------|----------------------------| +| *@,mSplat | ${*@}, $mSplat, $MergeSplat| + + +Merge splat will merge multiple splats together. + + @{a='b'}, @{c='d'} | Merge-Splat + + +#### Use-Splat + +| Alias | Variables | +|--------------|----------------------------------| +| .@,uSplat | ${.@}, $uSplat, $UseSplat | + + +Use-Splat will run a splat against one or more commands. + @{id=$pid} | Use-Splat Get-Process # Gets the current process + + # Gets the process, and then doesn't stop the process because Stop-Process is passed WhatIf + @{id=$pid;WhatIf=$true} | .@ Get-Process,Stop-Process + + +### Using Splatter with ScriptBlocks + + +In PowerShell, you can treat any ScriptBlock as a command. Splatter makes this simpler. + +Take this example, which takes a little bit of input data and uses it in a few different scripts. + + @{ + Name='James' + Birthday = '12/17/1981' + City = 'Seattle' + State = 'Washington' + } | .@ { + param($Name) + "$name" + }, { + param([DateTime]$Birthday) + $ageTimespan = [DateTime]::Now - $birthday + "Age:" + [Math]::Floor($ageTimespan.TotalDays / 365) + + }, { + param($city, $state) + "$city, $state" + } + +Since Splatter will also convert objects to hashtables, you could also write something like: + + Import-Csv .\People.csv | .@ + { + param($Name) + "$name" + }, { + param([DateTime]$Birthday) + $ageTimespan = [DateTime]::Now - $birthday + "Age:" + [Math]::Floor($ageTimespan.TotalDays / 365) + + } + + +### Embedding Splatter + +Initialize-Splat will output a script containing the core commands for Splatter. +Using this output, you can directly embed Splatter into any script or module. + + Initialize-Splatter + +To install this into a module: + + Get-Module TheNameOfYourModule | Split-Path | Push-Location + Initialize-Splatter > '@.ps1' + Pop-Location + +Then add the following line to your module: + + . $psScriptRoot\@.ps1 + +By default, when Splatter is embedded, it will not export functions or aliases, and you will need to use the variable syntax: + + & ${?@} # Get-Splat + & ${??@} # Find-Splat + & ${*@} # Merge-Splat + & ${.@} # Use-Splat + +You can override this by using -AsFunction + + Initialize-Splatter -AsFunction + +If you don't need all of the commands, you can use -Verb + + Initialize-Splatter -Verb Get, Use + + + +### Generating Splatting Code + +You can use Out-Splat to generate code that splats. + + Out-Splat -CommandName Get-Command -DefaultParameter @{Module='Splatter';CommandType='Alias'} | Invoke-Expression + +You can use also use Out-Splatter to generate whole functions, including help. + + $scriptBlock = + Out-Splat -FunctionName Get-SplatterAlias -CommandName Get-Command -DefaultParameter @{ + Module='Splatter';CommandType='Alias' + } -ExcludeParameter * -Synopsis 'Gets Splatter Aliases' -Description 'Gets aliases from the module Splatter' + . ([ScriptBlock]::Create($scriptBlock)) + + Get-SplatterAlias | Out-String + Get-Help Get-SplatterAlias | Out-String From b49775f9f7a98e869f250158999a2212a41c0ac4 Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:37:54 +0000 Subject: [PATCH 31/42] Adding Splatter.HelpOut.ps1 (Fixes #14) --- docs/Assets/Splatter.png | Bin 0 -> 104905 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/Assets/Splatter.png diff --git a/docs/Assets/Splatter.png b/docs/Assets/Splatter.png new file mode 100644 index 0000000000000000000000000000000000000000..fafc917d8f06c33b6b8e31b0f828a11211a50378 GIT binary patch literal 104905 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 HkAwdORJUc& literal 0 HcmV?d00001 From 5b798b062661c02fa74d8df2cddc71c2567459bd Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:37:54 +0000 Subject: [PATCH 32/42] Adding Splatter.HelpOut.ps1 (Fixes #14) --- docs/Assets/Splatter.svg | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs/Assets/Splatter.svg diff --git a/docs/Assets/Splatter.svg b/docs/Assets/Splatter.svg new file mode 100644 index 0000000..7064c4a --- /dev/null +++ b/docs/Assets/Splatter.svg @@ -0,0 +1,11 @@ + + + + + + + + + spl@tter + + From c051ce7b84d4384f1a7bf083657920ac49297514 Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:37:54 +0000 Subject: [PATCH 33/42] Adding Splatter.HelpOut.ps1 (Fixes #14) --- docs/Assets/Splatter@1080p-Animated.svg | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 docs/Assets/Splatter@1080p-Animated.svg diff --git a/docs/Assets/Splatter@1080p-Animated.svg b/docs/Assets/Splatter@1080p-Animated.svg new file mode 100644 index 0000000..b0a8929 --- /dev/null +++ b/docs/Assets/Splatter@1080p-Animated.svg @@ -0,0 +1,12 @@ + + + + + + + + + spl@tter + + + From 3041861cebbbcf0d347de766a1e7942ea82245cb Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Mon, 8 May 2023 21:37:54 +0000 Subject: [PATCH 34/42] Adding Splatter.HelpOut.ps1 (Fixes #14) --- docs/Assets/Splatter@1080p.svg | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs/Assets/Splatter@1080p.svg diff --git a/docs/Assets/Splatter@1080p.svg b/docs/Assets/Splatter@1080p.svg new file mode 100644 index 0000000..2bbd446 --- /dev/null +++ b/docs/Assets/Splatter@1080p.svg @@ -0,0 +1,11 @@ + + + + + + + + + spl@tter + + From 16c3f88b7fd6494485d0f34078f1d52a7ee1235b Mon Sep 17 00:00:00 2001 From: James Brundage <@github.com> Date: Mon, 8 May 2023 16:08:29 -0700 Subject: [PATCH 35/42] Updating splatter workflow (minifying) (Fixes #15) --- .github/workflows/TestBuildAndPublish.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/TestBuildAndPublish.yml b/.github/workflows/TestBuildAndPublish.yml index 1f4d131..8c6b40d 100644 --- a/.github/workflows/TestBuildAndPublish.yml +++ b/.github/workflows/TestBuildAndPublish.yml @@ -589,4 +589,7 @@ jobs: - name: Run HelpOut uses: StartAutomating/HelpOut@master id: HelpOut + - name: Run PSMinifier + uses: StartAutomating/PSMinifier@master + id: PSMinifier From 19e58505b316e6332d1792a33b5a03c86fa8ca7d Mon Sep 17 00:00:00 2001 From: James Brundage <@github.com> Date: Mon, 8 May 2023 16:11:42 -0700 Subject: [PATCH 36/42] Updating splatter workflow (minifying and checking in) (Fixes #15) --- .github/workflows/TestBuildAndPublish.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/TestBuildAndPublish.yml b/.github/workflows/TestBuildAndPublish.yml index 8c6b40d..9b66de3 100644 --- a/.github/workflows/TestBuildAndPublish.yml +++ b/.github/workflows/TestBuildAndPublish.yml @@ -592,4 +592,7 @@ jobs: - name: Run PSMinifier uses: StartAutomating/PSMinifier@master id: PSMinifier + with: + Exclude: '*.tests.ps1;*.psdevops.ps1;*.pssvg.ps1' + CommitMessage: Minifying $($_.Name) From 222c43b9d36a49ca167a2d74b5f31a9cf0aa3466 Mon Sep 17 00:00:00 2001 From: James Brundage <@github.com> Date: Mon, 8 May 2023 16:17:50 -0700 Subject: [PATCH 37/42] Updating splatter workflow (not minifying) (re #15) --- .github/workflows/TestBuildAndPublish.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/TestBuildAndPublish.yml b/.github/workflows/TestBuildAndPublish.yml index 9b66de3..1f4d131 100644 --- a/.github/workflows/TestBuildAndPublish.yml +++ b/.github/workflows/TestBuildAndPublish.yml @@ -589,10 +589,4 @@ jobs: - name: Run HelpOut uses: StartAutomating/HelpOut@master id: HelpOut - - name: Run PSMinifier - uses: StartAutomating/PSMinifier@master - id: PSMinifier - with: - Exclude: '*.tests.ps1;*.psdevops.ps1;*.pssvg.ps1' - CommitMessage: Minifying $($_.Name) From 4cdecb84462d00e8dd79d548a832645b71d6ab40 Mon Sep 17 00:00:00 2001 From: James Brundage <@github.com> Date: Mon, 8 May 2023 17:02:30 -0700 Subject: [PATCH 38/42] Adding Splatter aliases to definitions (Fixes #16) --- Find-Splat.ps1 | 1 + Get-Splat.ps1 | 1 + Merge-Splat.ps1 | 11 +++++++---- Out-Splat.ps1 | 1 + Splatter.psm1 | 12 +----------- Use-Splat.ps1 | 5 +++-- 6 files changed, 14 insertions(+), 17 deletions(-) diff --git a/Find-Splat.ps1 b/Find-Splat.ps1 index be6270d..bf4a959 100644 --- a/Find-Splat.ps1 +++ b/Find-Splat.ps1 @@ -12,6 +12,7 @@ .Example @{Id=$pid} | Find-Splat -Global #> + [Alias('??@','fSplat')] param( # One or more commands. # If not provided, commands from the current module will be searched. diff --git a/Get-Splat.ps1 b/Get-Splat.ps1 index 8fe76b3..84cfad3 100644 --- a/Get-Splat.ps1 +++ b/Get-Splat.ps1 @@ -16,6 +16,7 @@ .Example @{id=$pid} | & ${?@} # Get-Splat as a script block #> + [Alias('?@','gSplat')] param( # The command that is being splatted. [Parameter(Mandatory=$true,Position=0)] diff --git a/Merge-Splat.ps1 b/Merge-Splat.ps1 index 39b6f1c..2a7518f 100644 --- a/Merge-Splat.ps1 +++ b/Merge-Splat.ps1 @@ -29,15 +29,16 @@ } } #> + [Alias('*@','mSplat')] param( # The splat - [Parameter(ValueFromPipeline=$true)] + [Parameter(ValueFromPipeline)] [Alias('InputObject')] [PSObject[]] $Splat, # Splats or objects that will be added to the splat. - [Parameter(Position=0,ValueFromRemainingArguments=$true)] + [Parameter(Position=0,ValueFromRemainingArguments)] [Alias('With', 'W', 'A', '+')] [PSObject[]] $Add, @@ -74,9 +75,11 @@ [Collections.IDictionary] $Map, + # If set, will keep existing values in a splat instead of adding it to a list of values. [switch] $Keep, + # If set, will replace existing values in a splat instead of adding it to a list of values. [switch] $Replace) @@ -155,11 +158,11 @@ } } process { - $isTheEndOfTheLine? = + $isTheEndOfTheLine = $MyInvocation.PipelinePosition -eq $MyInvocation.PipelineLength if ($Splat) { $accumulate.AddRange($Splat) } if ($Add) { $accumulate.AddRange($add) } - if (-not $isTheEndOfTheLine?) { + if (-not $isTheEndOfTheLine) { . $imSplat } } diff --git a/Out-Splat.ps1 b/Out-Splat.ps1 index e82540e..b8c4ae0 100644 --- a/Out-Splat.ps1 +++ b/Out-Splat.ps1 @@ -15,6 +15,7 @@ } -ExcludeParameter * #> [CmdletBinding(DefaultParameterSetName='JustTheSplatter')] + [Alias('=>@','oSplat')] [OutputType([ScriptBlock])] param( # The name of the command that will be splatted diff --git a/Splatter.psm1 b/Splatter.psm1 index ca72383..a52d75a 100644 --- a/Splatter.psm1 +++ b/Splatter.psm1 @@ -8,17 +8,7 @@ param() . $psScriptRoot\Initialize-Splatter.ps1 -# ?@ Get the splat for a given command. -Set-Alias -Name '?@' -Value Get-Splat -Set-Alias -Name 'gSplat' -Value Get-Splat -Set-Alias -Name '??@' -Value Find-Splat -Set-Alias -Name 'fSplat' -Value Find-Splat -Set-Alias -Name '.@' -Value Use-Splat -Set-Alias -Name 'uSplat' -Value Use-Splat -Set-Alias -Name '*@' -Value Merge-Splat -Set-Alias -Name 'mSplat' -Value Merge-Splat -Set-Alias -Name '=>@' -Value Out-Splat - +# Assign each splatter command to a variable for easy internal access ${?@} = $gSplat = $GetSplat = ${function:Get-Splat} ${??@} = $fSplat = $FindSplat = ${function:Find-Splat} ${*@} = $mSplat = $MergeSplat = ${function:Merge-Splat} diff --git a/Use-Splat.ps1 b/Use-Splat.ps1 index 21fc6df..fec9333 100644 --- a/Use-Splat.ps1 +++ b/Use-Splat.ps1 @@ -23,6 +23,7 @@ @{LogName='Application';InstanceId=10000,10005} | .@ Get-EventLog # get a bunch of different log events #> + [Alias('.@','uSplat')] param( # One or more commands [Parameter(Position=0)] @@ -30,7 +31,7 @@ $Command, # Any additional positional arguments that would be passed to the command - [Parameter(Position=1,ValueFromRemainingArguments=$true)] + [Parameter(Position=1,ValueFromRemainingArguments)] [PSObject[]] $ArgumentList = @(), @@ -57,7 +58,7 @@ $Stream) begin { - $pipelines = @{} + $pipelines = @{} } process { $WeTrustTheSplat = $false From 437d5630f5ce9aabcf02bd7d419c9edacb5d9ccb Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Tue, 9 May 2023 00:03:56 +0000 Subject: [PATCH 39/42] Adding Splatter aliases to definitions (Fixes #16) --- docs/Merge-Splat.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/Merge-Splat.md b/docs/Merge-Splat.md index 11deac6..f37ffb7 100644 --- a/docs/Merge-Splat.md +++ b/docs/Merge-Splat.md @@ -187,6 +187,10 @@ If the value is a ScriptBlock, it will combine the output of this script block w #### **Keep** +If set, will keep existing values in a splat instead of adding it to a list of values. + + + @@ -198,6 +202,10 @@ If the value is a ScriptBlock, it will combine the output of this script block w #### **Replace** +If set, will replace existing values in a splat instead of adding it to a list of values. + + + From 71499257916e5309984852d5c2828425367414fd Mon Sep 17 00:00:00 2001 From: James Brundage <@github.com> Date: Mon, 8 May 2023 17:23:08 -0700 Subject: [PATCH 40/42] Updating Module Version [0.5.4] and CHANGELOG --- CHANGELOG.md | 17 +++++++++++++++++ Splatter.psd1 | 13 +++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..d69f734 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,17 @@ +### 0.5.4: + +* New Splatter Logo (#12) +* All splats will become PSObjects consistently (#13) +* Generated Documentation (#14) +* Declaring aliases inline (#16) + +--- + +### 0.5.3: +* Out-Splat now supports -Examples, -Links, -Notes, and -OutputTypes (Issue #9) +* Adding logo +* Documentation updates. + +### 0.5.2: +* Improved pipeline support (Fixes #6) +* Out-Splat -CrossStream will now output all streams in generated commands, not just error and output. diff --git a/Splatter.psd1 b/Splatter.psd1 index a5cca26..d1885e1 100644 --- a/Splatter.psd1 +++ b/Splatter.psd1 @@ -3,7 +3,7 @@ Copyright = '2019-2021 Start-Automating' RootModule = 'Splatter.psm1' Description = 'Simple Scripts to Supercharge Splatting' - ModuleVersion = '0.5.3' + ModuleVersion = '0.5.4' AliasesToExport = '*' VariablesToExport = '*' GUID = '033f35ed-f8a7-4911-bb62-2691f505ed43' @@ -13,8 +13,17 @@ ProjectURI = 'https://github.com/StartAutomating/Splatter' LicenseURI = 'https://github.com/StartAutomating/Splatter/blob/master/LICENSE' IconURI = 'https://raw.githubusercontent.com/StartAutomating/Splatter/master/Assets/Splatter.png' - Tags = 'Splatting' + Tags = 'Splatting', 'PipeScript' ReleaseNotes = @' +### 0.5.4: + +* New Splatter Logo (#12) +* All splats will become PSObjects consistently (#13) +* Generated Documentation (#14) +* Declaring aliases inline (#16) + +--- + ### 0.5.3: * Out-Splat now supports -Examples, -Links, -Notes, and -OutputTypes (Issue #9) * Adding logo From f3a2ee2bf415efe25f8aa651d95eb8625e9feccf Mon Sep 17 00:00:00 2001 From: StartAutomating Date: Tue, 9 May 2023 00:24:14 +0000 Subject: [PATCH 41/42] Updating Module Version [0.5.4] and CHANGELOG --- docs/CHANGELOG.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 docs/CHANGELOG.md diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md new file mode 100644 index 0000000..d69f734 --- /dev/null +++ b/docs/CHANGELOG.md @@ -0,0 +1,17 @@ +### 0.5.4: + +* New Splatter Logo (#12) +* All splats will become PSObjects consistently (#13) +* Generated Documentation (#14) +* Declaring aliases inline (#16) + +--- + +### 0.5.3: +* Out-Splat now supports -Examples, -Links, -Notes, and -OutputTypes (Issue #9) +* Adding logo +* Documentation updates. + +### 0.5.2: +* Improved pipeline support (Fixes #6) +* Out-Splat -CrossStream will now output all streams in generated commands, not just error and output. From 6e5e545aa0b58d0252d1c85898640dddc92eea0f Mon Sep 17 00:00:00 2001 From: James Brundage <@github.com> Date: Mon, 8 May 2023 17:26:46 -0700 Subject: [PATCH 42/42] Moving Splatter.PSSVG.ps1 into /Build (re #12) --- Splatter.PSSVG.ps1 => Build/Splatter.PSSVG.ps1 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) rename Splatter.PSSVG.ps1 => Build/Splatter.PSSVG.ps1 (96%) diff --git a/Splatter.PSSVG.ps1 b/Build/Splatter.PSSVG.ps1 similarity index 96% rename from Splatter.PSSVG.ps1 rename to Build/Splatter.PSSVG.ps1 index d68a1c0..77a72e9 100644 --- a/Splatter.PSSVG.ps1 +++ b/Build/Splatter.PSSVG.ps1 @@ -1,4 +1,6 @@ #requires -Module PSSVG + +Push-Location ($PSScriptRoot | Split-Path) $psChevron = svg.symbol -Id psChevron -Content @( @@ -12,7 +14,7 @@ $psChevron = ) -join ' ') ) -ViewBox 100, 100 -PreserveAspectRatio $false -$assetsPath = Join-Path $PSScriptRoot Assets +$assetsPath = Join-Path $pwd Assets if (-not (Test-Path $assetsPath)) { $null = New-item -ItemType Directory -Path $assetsPath @@ -59,3 +61,4 @@ svg -ViewBox 1920, 1080 @( ) -FontSize 80em -FontWeight 500 ) -OutputPath (Join-Path $assetsPath 'Splatter@1080p-Animated.svg') +Pop-Location \ No newline at end of file