Logger.ps1 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. function Log-Debug {
  2. [CmdletBinding()]
  3. param(
  4. [Parameter(Mandatory,ValueFromPipeline)]
  5. [ValidateNotNullOrEmpty()]
  6. [string[]] $Message
  7. )
  8. Process {
  9. foreach($m in $Message) {
  10. Write-Debug "$(if ( $env:CI -ne $null ) { '::debug::' })$m"
  11. }
  12. }
  13. }
  14. function Log-Verbose {
  15. [CmdletBinding()]
  16. param(
  17. [Parameter(Mandatory,ValueFromPipeline)]
  18. [ValidateNotNullOrEmpty()]
  19. [string[]] $Message
  20. )
  21. Process {
  22. foreach($m in $Message) {
  23. Write-Verbose $m
  24. }
  25. }
  26. }
  27. function Log-Warning {
  28. [CmdletBinding()]
  29. param(
  30. [Parameter(Mandatory,ValueFromPipeline)]
  31. [ValidateNotNullOrEmpty()]
  32. [string[]] $Message
  33. )
  34. Process {
  35. foreach($m in $Message) {
  36. Write-Warning "$(if ( $env:CI -ne $null ) { '::warning::' })$m"
  37. }
  38. }
  39. }
  40. function Log-Error {
  41. [CmdletBinding()]
  42. param(
  43. [Parameter(Mandatory,ValueFromPipeline)]
  44. [ValidateNotNullOrEmpty()]
  45. [string[]] $Message
  46. )
  47. Process {
  48. foreach($m in $Message) {
  49. Write-Error "$(if ( $env:CI -ne $null ) { '::error::' })$m"
  50. }
  51. }
  52. }
  53. function Log-Information {
  54. [CmdletBinding()]
  55. param(
  56. [Parameter(Mandatory,ValueFromPipeline)]
  57. [ValidateNotNullOrEmpty()]
  58. [string[]] $Message
  59. )
  60. Process {
  61. if ( ! ( $script:Quiet ) ) {
  62. $StageName = $( if ( $script:StageName -ne $null ) { $script:StageName } else { '' })
  63. $Icon = ' =>'
  64. foreach($m in $Message) {
  65. Write-Host -NoNewLine -ForegroundColor Blue " ${StageName} $($Icon.PadRight(5)) "
  66. Write-Host "${m}"
  67. }
  68. }
  69. }
  70. }
  71. function Log-Group {
  72. [CmdletBinding()]
  73. param(
  74. [Parameter(ValueFromPipeline)]
  75. [string[]] $Message
  76. )
  77. Process {
  78. if ( $Env:CI -ne $null ) {
  79. if ( $script:LogGroup ) {
  80. Write-Output '::endgroup::'
  81. $script:LogGroup = $false
  82. }
  83. if ( $Message.count -ge 1 ) {
  84. Write-Output "::group::$($Message -join ' ')"
  85. $script:LogGroup = $true
  86. }
  87. } else {
  88. if ( $Message.count -ge 1 ) {
  89. Log-Information $Message
  90. }
  91. }
  92. }
  93. }
  94. function Log-Status {
  95. [CmdletBinding()]
  96. param(
  97. [Parameter(Mandatory,ValueFromPipeline)]
  98. [ValidateNotNullOrEmpty()]
  99. [string[]] $Message
  100. )
  101. Process {
  102. if ( ! ( $script:Quiet ) ) {
  103. $StageName = $( if ( $StageName -ne $null ) { $StageName } else { '' })
  104. $Icon = ' >'
  105. foreach($m in $Message) {
  106. Write-Host -NoNewLine -ForegroundColor Green " ${StageName} $($Icon.PadRight(5)) "
  107. Write-Host "${m}"
  108. }
  109. }
  110. }
  111. }
  112. function Log-Output {
  113. [CmdletBinding()]
  114. param(
  115. [Parameter(Mandatory,ValueFromPipeline)]
  116. [ValidateNotNullOrEmpty()]
  117. [string[]] $Message
  118. )
  119. Process {
  120. if ( ! ( $script:Quiet ) ) {
  121. $StageName = $( if ( $script:StageName -ne $null ) { $script:StageName } else { '' })
  122. $Icon = ''
  123. foreach($m in $Message) {
  124. Write-Output " ${StageName} $($Icon.PadRight(5)) ${m}"
  125. }
  126. }
  127. }
  128. }
  129. $Columns = (Get-Host).UI.RawUI.WindowSize.Width - 5