Types/OpenPackage.Part/ReadText.ps1
|
<# .SYNOPSIS Reads Part Content as Text .DESCRIPTION Reads Package Part Content as Text #> [Reflection.AssemblyMetadata( # This should automatically apply to .txt files, sql files, modelfiles, and dockerfiles. 'FilePattern', '(?>Dockerfile|Modelfile|c|h|cpp|cs|js|md|sql|txt)$' )] [Reflection.AssemblyMetadata( # This should automatically apply to any text/ content types 'ContentTypePattern', '^text/' )] [Reflection.AssemblyMetadata( # This has a higher order, indicating it should be run later than most. 'Order', 100 )] param( # An optional input object # If provided, content will be read from this object. # If not provided, content will be read from this part. [Alias('Input')] [PSObject]$InputObject = $null, # Any options used to read the data. [Alias('Options')] [Collections.IDictionary]$Option = [Ordered]@{} ) if (-not $InputObject -and ($this -is [IO.Packaging.PackagePart]) ) { $Stream = $this.GetStream('Open','Read') $streamReader = [IO.StreamReader]::new($Stream, $true) $partText = $streamReader.ReadToEnd() $Stream.Close() $Stream.Dispose() $streamReader.Close() $streamReader.Dispose() $partText } elseif ($InputObject -is [IO.Stream]) { $streamReader = [IO.StreamReader]::new($InputObject, $true) $partText = $streamReader.ReadToEnd() $streamReader.Close() $streamReader.Dispose() $partText } elseif ($inputObject -is [string]) { $InputObject } |