Cmdlets/Interface/Export-StepTemplate.ps1
<#
Copyright 2016 ASOS.com Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. #> <# .NAME Export-StepTemplate .SYNOPSIS Exports a step template .DESCRIPTION Exports a step template in JSON format for submission to the Octopus community site or manual import into Octopus .PARAMETER Path The path to the step template .PARAMETER ExportPath The location to save the step template file .PARAMETER Force Overwrites the file if it already exists .PARAMETER ExportToClipboard Exports the step template to the system clipboard .INPUTS None. You cannot pipe objects to Export-StepTemplate. .OUTPUTS None. #> function Export-StepTemplate { [CmdletBinding()] [OutputType("System.String")] param( [Parameter(Mandatory=$true)][ValidateScript({ Test-Path $_ })][System.String]$Path, [Parameter(Mandatory=$true, ParameterSetName="File")][System.String]$ExportPath, [Parameter(Mandatory=$false, ParameterSetName="File")][System.Management.Automation.SwitchParameter]$Force, [Parameter(Mandatory=$true, ParameterSetName="Clipboard")][System.Management.Automation.SwitchParameter]$ExportToClipboard ) $resolvedPath = Resolve-Path -Path $Path $stepTemplate = Convert-ToOctopusJson (New-StepTemplateObject -Path $resolvedPath) switch ($PSCmdlet.ParameterSetName) { "File" { if ((Test-Path $ExportPath) -and -not $Force) { throw "$ExportPath already exists. Specify -Force to overwrite" } Set-Content -Path $ExportPath -Value $stepTemplate -Force:$Force -Encoding UTF8 "Step Template exported to $ExportPath" } "Clipboard" { Microsoft.PowerShell.Management\Set-Clipboard -Value $stepTemplate "Step Template exported clipboard" } } } |