#!/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 {}