psm1のfunctionを個別のps1ファイルにする
function Convert-ModuleFunctionsToPS1File {
[CmdletBinding()]
param(
[parameter(Mandatory,Position=0,ValueFromPipelineByPropertyName)]
[string] $Name,
[parameter(Mandatory,Position=1,ValueFromPipelineByPropertyName)]
[AllowEmptyString()]
[string] $ModuleName,
[parameter(Mandatory,Position=2,ValueFromPipelineByPropertyName)]
[string] $CommandType,
[parameter(Mandatory,Position=3,ValueFromPipelineByPropertyName)]
[ScriptBlock] $ScriptBlock,
[parameter(Mandatory=$false)]
[string] $OutDirectory = '.',
[parameter(Mandatory=$false)]
[ValidateSet('UNICODE','DEFAULT')]
[string] $Encoding = 'DEFAULT'
)
begin {
if (! (Test-Path $OutDirectory)) {
Write-Warning '存在しないディレクトリです'
break
}
$result = @()
}
process {
if ($CommandType -ne 'Function') {
break
}
if (! $ModuleName) {
$ModuleName = 'module'
}
$ModuleDirectory = Join-Path $OutDirectory $ModuleName
if (! (Test-Path $ModuleDirectory)) {
md $ModuleDirectory | Out-Null
}
$result += $ModuleDirectory
$OutFile = Join-Path $ModuleDirectory "$($Name).ps1"
$ScriptBlock | Out-File -FilePath $OutFile -Encoding default
}
end {
return $result | select -Unique | ls
}
}