internal/functions/Write-HawkBanner.ps1

Function Write-HawkBanner {
    <#
    .SYNOPSIS
        Displays the Hawk welcome banner in the terminal.
 
    .DESCRIPTION
        The `Write-HawkBanner` function displays a visually appealing ASCII art banner
        when starting Hawk operations. The banner includes the Hawk logo and additional
        information about the tool. Optionally, the function can display a welcome
        message to guide users through the initial setup process.
 
    .PARAMETER DisplayWelcomeMessage
        This optional switch parameter displays a series of informational messages
        to help the user configure their investigation environment.
 
    .INPUTS
        None. The function does not take pipeline input.
 
    .OUTPUTS
        [String]
        The function outputs the Hawk banner as a string to the terminal.
 
    .EXAMPLE
        Write-HawkBanner
        Displays the Hawk welcome banner without the welcome message.
 
    .EXAMPLE
        Write-HawkBanner -DisplayWelcomeMessage
        Displays the Hawk welcome banner followed by a welcome message that guides
        the user through configuring the investigation environment.
    #>

    [CmdletBinding()]
    param(
        [Switch]$DisplayWelcomeMessage
    )
    
    $banner = @'
========================================
    __ __ __
   / / / /___ __ __/ /__
  / /_/ / __ `/ | /| / / //_/
 / __ / /_/ /| |/ |/ / ,<
/_/ /_/\__,_/ |__/|__/_/|_|
 
========================================
                              
Microsoft Cloud Security Analysis Tool
https://hawkforensics.io
 
========================================
 
'@


    Write-Output $banner 

    if ($DisplayWelcomeMessage) {
        Write-Information "Welcome to Hawk! Let's get your investigation environment set up."
        Write-Information "We'll guide you through configuring the output file path and investigation date range."
        Write-Information "You'll need to specify where logs should be saved and the time window for data retrieval."
        Write-Information "If you're unsure, don't worry! Default options will be provided to help you out."
        Write-Information "`nLet's get started!`n"
    }

}