Skip to content

Commit 4a42912

Browse files
StartAutomatingStartAutomating
authored andcommitted
Adding [Management.Automation.Language.ScriptRequirements].ToString() (Fixes #234)
1 parent 383d134 commit 4a42912

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

PipeScript.types.ps1xml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,45 @@ elseif ($TranspilerWarnings) {
522522
</ScriptMethod>
523523
</Members>
524524
</Type>
525+
<Type>
526+
<Name>System.Management.Automation.Language.ScriptRequirements</Name>
527+
<Members>
528+
<ScriptMethod>
529+
<Name>ToString</Name>
530+
<Script>
531+
$requirement = $this
532+
if ($requirement.RequirementPSVersion) {
533+
"#requires -Version $($requirement.RequirementPSVersion)"
534+
}
535+
if ($requirement.IsElevationRequired) {
536+
"#requires -RunAsAdministrator"
537+
}
538+
if ($requirement.RequiredModules) {
539+
"#requires -Module $(@(foreach ($reqModule in $requirement.RequiredModules) {
540+
if ($reqModule.Version -or $req.RequiredVersion -or $req.MaximumVersion) {
541+
'@{' + $(@(foreach ($prop in $reqModule.PSObject.Properties) {
542+
if (-not $prop.Value) { continue }
543+
if ($prop.Name -in 'Name', 'Version') {
544+
"Module$($prop.Name)='$($prop.Value.ToString().Replace("'","''"))'"
545+
} elseif ($prop.Name -eq 'RequiredVersion') {
546+
"MinimumVersion='$($prop.Value)'"
547+
} else {
548+
"$($prop.Name)='$($prop.Value)'"
549+
}
550+
}) -join ';') + '}'
551+
} else {
552+
$reqModule.Name
553+
}
554+
}) -join ',')"
555+
}
556+
if ($requirement.RequiredAssemblies) {
557+
"#requires -Assembly $($requirement.RequiredAssemblies -join ',')"
558+
}
559+
560+
</Script>
561+
</ScriptMethod>
562+
</Members>
563+
</Type>
525564
<Type>
526565
<Name>System.Management.Automation.Language.TypeConstraintAst</Name>
527566
<Members>

0 commit comments

Comments
 (0)