#!/usr/bin/env fish

function echo.Black

    echo -e "\033[30m$argv\033[m"
end

function echo.ULBlack

    echo -e "\033[4;30m$argv\033[m"
end

function echo.BoldBlack

    echo -e "\033[1;30m$argv\033[m"
end

function echo.BoldULBlack

    echo -e "\033[4;1;30m$argv\033[m"
end

function echo.LightBlack

    echo -e "\033[90m$argv\033[m"
end

function echo.LightULBlack

    echo -e "\033[4;90m$argv\033[m"
end

function echo.LightBoldBlack

    echo -e "\033[1;90m$argv\033[m"
end

function echo.LightBoldULBlack

    echo -e "\033[4;1;90m$argv\033[m"
end

function echo.Red

    echo -e "\033[31m$argv\033[m"
end

function echo.ULRed

    echo -e "\033[4;31m$argv\033[m"
end

function echo.BoldRed

    echo -e "\033[1;31m$argv\033[m"
end

function echo.BoldULRed

    echo -e "\033[4;1;31m$argv\033[m"
end

function echo.LightRed

    echo -e "\033[91m$argv\033[m"
end

function echo.LightULRed

    echo -e "\033[4;91m$argv\033[m"
end

function echo.LightBoldRed

    echo -e "\033[1;91m$argv\033[m"
end

function echo.LightBoldULRed

    echo -e "\033[4;1;91m$argv\033[m"
end

function echo.Green

    echo -e "\033[32m$argv\033[m"
end

function echo.ULGreen

    echo -e "\033[4;32m$argv\033[m"
end

function echo.BoldGreen

    echo -e "\033[1;32m$argv\033[m"
end

function echo.BoldULGreen

    echo -e "\033[4;1;32m$argv\033[m"
end

function echo.LightGreen

    echo -e "\033[92m$argv\033[m"
end

function echo.LightULGreen

    echo -e "\033[4;92m$argv\033[m"
end

function echo.LightBoldGreen

    echo -e "\033[1;92m$argv\033[m"
end

function echo.LightBoldULGreen

    echo -e "\033[4;1;92m$argv\033[m"
end

function echo.Yellow

    echo -e "\033[33m$argv\033[m"
end

function echo.ULYellow

    echo -e "\033[4;33m$argv\033[m"
end

function echo.BoldYellow

    echo -e "\033[1;33m$argv\033[m"
end

function echo.BoldULYellow

    echo -e "\033[4;1;33m$argv\033[m"
end

function echo.LightYellow

    echo -e "\033[93m$argv\033[m"
end

function echo.LightULYellow

    echo -e "\033[4;93m$argv\033[m"
end

function echo.LightBoldYellow

    echo -e "\033[1;93m$argv\033[m"
end

function echo.LightBoldULYellow

    echo -e "\033[4;1;93m$argv\033[m"
end

function echo.Blue

    echo -e "\033[34m$argv\033[m"
end

function echo.ULBlue

    echo -e "\033[4;34m$argv\033[m"
end

function echo.BoldBlue

    echo -e "\033[1;34m$argv\033[m"
end

function echo.BoldULBlue

    echo -e "\033[4;1;34m$argv\033[m"
end

function echo.LightBlue

    echo -e "\033[94m$argv\033[m"
end

function echo.LightULBlue

    echo -e "\033[4;94m$argv\033[m"
end

function echo.LightBoldBlue

    echo -e "\033[1;94m$argv\033[m"
end

function echo.LightBoldULBlue

    echo -e "\033[4;1;94m$argv\033[m"
end

function echo.Magenta

    echo -e "\033[35m$argv\033[m"
end

function echo.ULMagenta

    echo -e "\033[4;35m$argv\033[m"
end

function echo.BoldMagenta

    echo -e "\033[1;35m$argv\033[m"
end

function echo.BoldULMagenta

    echo -e "\033[4;1;35m$argv\033[m"
end

function echo.LightMagenta

    echo -e "\033[95m$argv\033[m"
end

function echo.LightULMagenta

    echo -e "\033[4;95m$argv\033[m"
end

function echo.LightBoldMagenta

    echo -e "\033[1;95m$argv\033[m"
end

function echo.LightBoldULMagenta

    echo -e "\033[4;1;95m$argv\033[m"
end

function echo.Cyan

    echo -e "\033[36m$argv\033[m"
end

function echo.ULCyan

    echo -e "\033[4;36m$argv\033[m"
end

function echo.BoldCyan

    echo -e "\033[1;36m$argv\033[m"
end

function echo.BoldULCyan

    echo -e "\033[4;1;36m$argv\033[m"
end

function echo.LightCyan

    echo -e "\033[96m$argv\033[m"
end

function echo.LightULCyan

    echo -e "\033[4;96m$argv\033[m"
end

function echo.LightBoldCyan

    echo -e "\033[1;96m$argv\033[m"
end

function echo.LightBoldULCyan

    echo -e "\033[4;1;96m$argv\033[m"
end

function echo.White

    echo -e "\033[37m$argv\033[m"
end

function echo.ULWhite

    echo -e "\033[4;37m$argv\033[m"
end

function echo.BoldWhite

    echo -e "\033[1;37m$argv\033[m"
end

function echo.BoldULWhite

    echo -e "\033[4;1;37m$argv\033[m"
end

function echo.LightWhite

    echo -e "\033[97m$argv\033[m"
end

function echo.LightULWhite

    echo -e "\033[4;97m$argv\033[m"
end

function echo.LightBoldWhite

    echo -e "\033[1;97m$argv\033[m"
end

function echo.LightBoldULWhite

    echo -e "\033[4;1;97m$argv\033[m"
end

function echo.Purple

    echo -e "\033[3;38;5;93m$argv\033[m"
end

function echo.ULPurple

    echo -e "\033[4;3;38;5;93m$argv\033[m"
end

function echo.BoldPurple

    echo -e "\033[1;3;38;5;93m$argv\033[m"
end

function echo.BoldULPurple

    echo -e "\033[4;1;3;38;5;93m$argv\033[m"
end

function echo.LightPurple

    echo -e "\033[9;38;5;93m$argv\033[m"
end

function echo.LightULPurple

    echo -e "\033[4;9;38;5;93m$argv\033[m"
end

function echo.LightBoldPurple

    echo -e "\033[1;9;38;5;93m$argv\033[m"
end

function echo.LightBoldULPurple

    echo -e "\033[4;1;9;38;5;93m$argv\033[m"
end

function echo.Orange

    echo -e "\033[3;38;5;202m$argv\033[m"
end

function echo.ULOrange

    echo -e "\033[4;3;38;5;202m$argv\033[m"
end

function echo.BoldOrange

    echo -e "\033[1;3;38;5;202m$argv\033[m"
end

function echo.BoldULOrange

    echo -e "\033[4;1;3;38;5;202m$argv\033[m"
end

function echo.LightOrange

    echo -e "\033[9;38;5;202m$argv\033[m"
end

function echo.LightULOrange

    echo -e "\033[4;9;38;5;202m$argv\033[m"
end

function echo.LightBoldOrange

    echo -e "\033[1;9;38;5;202m$argv\033[m"
end

function echo.LightBoldULOrange

    echo -e "\033[4;1;9;38;5;202m$argv\033[m"
end

function echo.Pink

    echo -e "\033[3;38;5;206m$argv\033[m"
end

function echo.ULPink

    echo -e "\033[4;3;38;5;206m$argv\033[m"
end

function echo.BoldPink

    echo -e "\033[1;3;38;5;206m$argv\033[m"
end

function echo.BoldULPink

    echo -e "\033[4;1;3;38;5;206m$argv\033[m"
end

function echo.LightPink

    echo -e "\033[9;38;5;206m$argv\033[m"
end

function echo.LightULPink

    echo -e "\033[4;9;38;5;206m$argv\033[m"
end

function echo.LightBoldPink

    echo -e "\033[1;9;38;5;206m$argv\033[m"
end

function echo.LightBoldULPink

    echo -e "\033[4;1;9;38;5;206m$argv\033[m"
end

function echo.Brown

    echo -e "\033[3;38;5;52m$argv\033[m"
end

function echo.ULBrown

    echo -e "\033[4;3;38;5;52m$argv\033[m"
end

function echo.BoldBrown

    echo -e "\033[1;3;38;5;52m$argv\033[m"
end

function echo.BoldULBrown

    echo -e "\033[4;1;3;38;5;52m$argv\033[m"
end

function echo.LightBrown

    echo -e "\033[9;38;5;52m$argv\033[m"
end

function echo.LightULBrown

    echo -e "\033[4;9;38;5;52m$argv\033[m"
end

function echo.LightBoldBrown

    echo -e "\033[1;9;38;5;52m$argv\033[m"
end

function echo.LightBoldULBrown

    echo -e "\033[4;1;9;38;5;52m$argv\033[m"
end
function echo.Rainbow

    if which lolcat > /dev/null
        echo "$argv" | lolcat
    else
        echo "$argv"
    end
end
function echo.Reset

    echo "$argv" | tr -d '[:cntrl:]' | sed -E "s/\[((;)?[0-9]{1,3}){0,3}m//g"
end
