Skip to content

Instantly share code, notes, and snippets.

@dennisroche
Last active October 21, 2022 04:17
Show Gist options
  • Save dennisroche/b1b848aff67fbc15cf230cc4b5c4e153 to your computer and use it in GitHub Desktop.
Save dennisroche/b1b848aff67fbc15cf230cc4b5c4e153 to your computer and use it in GitHub Desktop.
Pretty log header using ASCII
  ╔═══════════════════════════════════════════════════════════════════════════════╗
  ║                                    Example                                    ║
  ╚═══════════════════════════════════════════════════════════════════════════════╝

Useful for breaking up large log files

echo_heading() {
local readonly text=$1
local readonly text_length=${#text}
local readonly padding_length=$(expr 80 - 2 - ${text_length} / 2)
local readonly size=$(expr ${padding_length} \* 2 + ${text_length} + 2)
printf '\n\t\u2554'
printf '\u2550%.0s' $(seq $size)
printf '\u2557\n'
printf '\t\u2551'
printf ' %.0s' $(seq $padding_length)
printf ' %s ' "$text"
printf ' %.0s' $(seq $padding_length)
printf '\u2551\n'
printf '\t\u255A'
printf '\u2550%.0s' $(seq $size)
printf '\u255D\n\n'
}
static void WriteHeading(string text)
{
var result = new StringBuilder();
var padding = new string(' ', (80 - 2 - text.Length) / 2);
var size = padding.Length * 2 + text.Length + 2;
var middle = new string((char)0x2550, size);
result.AppendLine();
result.AppendLine($"\t{(char)0x2554}{middle}{(char)0x2557}");
result.AppendLine($"\t{(char)0x2551}{padding} {text} {padding}{(char)0x2551}");
result.AppendLine($"\t{(char)0x255A}{middle}{(char)0x255D}");
result.AppendLine();
Console.Write(result.ToString());
}
function Write-Heading {
param($Text)
$noColor = $Text -replace "`e\[[0-9;]*m", ''
$padding = ' ' * ((80 - 2 - $noColor.Length) / 2)
$size = $padding.Length * 2 + $noColor.Length + 2
Write-Host " `n"
Write-Host (@("`t", ([string][char]0x2554), (([string][char]0x2550) * $size), ([string][char]0x2557)) -join '')
Write-Host "`t$(([string][char]0x2551))$padding $Text $padding$([string][char]0x2551)"
Write-Host (@("`t", ([string][char]0x255A), (([string][char]0x2550) * $size), ([string][char]0x255D)) -join '')
Write-Host " `n"
}
function Write-Success {
param ([string]$Text)
Write-Host "$Text `e[32m✓`e[0m"
}
function Write-Fail {
param ([string]$Text)
Write-Host "$Text `e[31mX`e[0m"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment