#!/usr/bin/awk -f
# Łukasz Adamkiewicz (levi)
# https://nest.pijul.com/levi/
#
# Pjcolor v1.0
# Pjcolor is a small AWK script for formating and coloring "pijul change" command like output.
# At the same time providing sane theming capabilities(as far as AWK allows)
BEGIN {
EOL = 999; # hack for "until the end of line"
# In case you want to create your own pjcolor theme
# Include it like here:
#
# @include "<your-custom-pjcolor-theme>"
#
# Also comment out existing default theme.
# Also export your AWKPATH Environment Variable. This will allow AWK
# to pick up your theme without need to provide full path.
# Have Fun.
# -- Pijul Nest/GitHub theme (True Color) --
# (
#MARKER = "";
PLUS = "+";
MINUS = "-";
LINE = "⎯";
LINE_WIDTH = 60;
RGB_FG_CODE = "\033[38;2;";
RGB_BG_CODE = "\033[48;2;";
MINUS_FOREGROUND = RGB_FG_CODE"" "114;28;36m";
MINUS_BACKGROUND = RGB_BG_CODE"" "248;215;218m";
MINUS_MARKER_FOREGROUND = RGB_BG_CODE"" "248;215;218m";
MINUS_MARKER_BACKGROUND = RGB_FG_CODE"" "114;28;36m";
MINUS_SIGN_FOREGROUND = RGB_FG_CODE"" "255;255;255m";
MINUS_SIGN_BACKGROUND = RGB_BG_CODE"" "114;28;36m";
# --------------------------------------------------
PLUS_FOREGROUND = RGB_FG_CODE"" "21;87;36m";
PLUS_BACKGROUND = RGB_BG_CODE"" "212;237;218m";
PLUS_MARKER_FOREGROUND = RGB_BG_CODE"" "212;237;218m";
PLUS_MARKER_BACKGROUND = RGB_FG_CODE"" "21;87;36m";
PLUS_SIGN_FOREGROUND = RGB_FG_CODE"" "255;255;255m";
PLUS_SIGN_BACKGROUND = RGB_BG_CODE"" "21;87;36m";
# )
RESET="\033[0m";
}
{
if ($1~/^[0-9]+.$/) {
for(c=0; c<LINE_WIDTH; c++) {
printf LINE;
}
print "\n";
}
switch ($1) {
case "+":
print \
PLUS_SIGN_FOREGROUND PLUS_SIGN_BACKGROUND PLUS \
PLUS_MARKER_FOREGROUND PLUS_MARKER_BACKGROUND MARKER \
PLUS_BACKGROUND PLUS_FOREGROUND substr($0,2,EOL) RESET;
break;
case "-":
print \
MINUS_SIGN_FOREGROUND MINUS_SIGN_BACKGROUND MINUS \
MINUS_MARKER_FOREGROUND MINUS_MARKER_BACKGROUND MARKER \
MINUS_BACKGROUND MINUS_FOREGROUND substr($0,2,EOL) RESET;
break;
default:
print $0;
}
}
END {}