src/PowerBOFH.psm1
#Requires -Version 5.0 Function Get-Excuse { [Alias('New-Excuse', 'New-BofhExcuse', 'Get-BofhExcuse', 'bofh')] [CmdletBinding()] [OutputType([String])] Param() $ExcusesPath = Join-Path -Path ((Get-Module 'PowerBOFH').ModuleBase) -ChildPath 'contrib' Write-Debug "Looking for excuses in $ExcusesPath." $Excuses = [String[]]@() Get-ChildItem -Path $ExcusesPath -Filter '*.txt' -Recurse | ForEach-Object { $Excuses += Read-ExcuseFile $_ -Debug:$DebugPreference } Write-Verbose "We have $($Excuses.Count) potential excuses. How exciting." If ($Excuses.Count -eq 0) { Return 'The excuse generator is broken.' } Else { Return $Excuses[(Get-Random $Excuses.Count) - 1] } } Function Read-ExcuseFile { [CmdletBinding()] [OutputType([String[]])] Param( [Parameter(Mandatory, Position=0, ValueFromPipeline)] [IO.FileInfo] $InputObject ) Write-Debug "Reading excuses from $($InputObject.FullName)..." $MoreExcuses = [String[]]@() $MoreExcuses += (Get-Content -Path $InputObject.FullName -Encoding 'UTF8' -ErrorAction SilentlyContinue) Write-Debug "Loaded $($MoreExcuses.Count) excuses from $InputObject." Return $MoreExcuses } |