Skip to content

Commit 06b3eaf

Browse files
StartAutomatingStartAutomating
authored andcommitted
Adding [Management.Automation.Language.ScriptRequirements] Adding .Script property (Fixes #234)
1 parent 9e0a822 commit 06b3eaf

File tree

1 file changed

+36
-28
lines changed

1 file changed

+36
-28
lines changed

PipeScript.types.ps1xml

Lines changed: 36 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -528,37 +528,45 @@ elseif ($TranspilerWarnings) {
528528
<ScriptMethod>
529529
<Name>ToString</Name>
530530
<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-
}
531+
$this.Script.ToString()
559532

560533
</Script>
561534
</ScriptMethod>
535+
<ScriptProperty>
536+
<Name>Script</Name>
537+
<GetScriptBlock>
538+
$requirement = $this
539+
[ScriptBlock]::create(
540+
@(if ($requirement.RequirementPSVersion) {
541+
"#requires -Version $($requirement.RequirementPSVersion)"
542+
}
543+
if ($requirement.IsElevationRequired) {
544+
"#requires -RunAsAdministrator"
545+
}
546+
if ($requirement.RequiredModules) {
547+
"#requires -Module $(@(foreach ($reqModule in $requirement.RequiredModules) {
548+
if ($reqModule.Version -or $req.RequiredVersion -or $req.MaximumVersion) {
549+
'@{' + $(@(foreach ($prop in $reqModule.PSObject.Properties) {
550+
if (-not $prop.Value) { continue }
551+
if ($prop.Name -in 'Name', 'Version') {
552+
"Module$($prop.Name)='$($prop.Value.ToString().Replace("'","''"))'"
553+
} elseif ($prop.Name -eq 'RequiredVersion') {
554+
"MinimumVersion='$($prop.Value)'"
555+
} else {
556+
"$($prop.Name)='$($prop.Value)'"
557+
}
558+
}) -join ';') + '}'
559+
} else {
560+
$reqModule.Name
561+
}
562+
}) -join ',')"
563+
}
564+
if ($requirement.RequiredAssemblies) {
565+
"#requires -Assembly $($requirement.RequiredAssemblies -join ',')"
566+
}) -join [Environment]::NewLine
567+
)
568+
</GetScriptBlock>
569+
</ScriptProperty>
562570
</Members>
563571
</Type>
564572
<Type>

0 commit comments

Comments
 (0)