Skip to content

Instantly share code, notes, and snippets.

@pydawan
Forked from tvinke/GroovyAnsi.groovy
Created October 27, 2020 18:00
Show Gist options
  • Save pydawan/9bb456cda8e7eaba76de52bddd70e943 to your computer and use it in GitHub Desktop.
Save pydawan/9bb456cda8e7eaba76de52bddd70e943 to your computer and use it in GitHub Desktop.

Revisions

  1. @tvinke tvinke created this gist Apr 18, 2018.
    84 changes: 84 additions & 0 deletions GroovyAnsi.groovy
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,84 @@
    // Ansi colors in Groovy
    // Author: Ted Vinke
    import static Ansi.*

    println color("BOLD", Ansi.BOLD)
    println color("ITALIC", Ansi.ITALIC)
    println color("UNDERLINE", Ansi.UNDERLINE)
    println color("BLINK", Ansi.BLINK)
    println color("RAPID_BLINK", Ansi.RAPID_BLINK)
    println color("REVERSE_VIDEO", Ansi.REVERSE_VIDEO)
    println color("INVISIBLE_TEXT", Ansi.INVISIBLE_TEXT)

    println color("RED", Ansi.RED)
    println color("BLACK", Ansi.BLACK)
    println color("BOLD", Ansi.BOLD)
    println color("GREEN", Ansi.GREEN)
    println color("YELLOW", Ansi.YELLOW)
    println color("BLUE", Ansi.BLUE)
    println color("MAGENTA", Ansi.MAGENTA)
    println color("CYAN", Ansi.CYAN)
    println color("WHITE", Ansi.WHITE)
    println color("DARK_GRAY", Ansi.DARK_GRAY)
    println color("LIGHT_BLUE", Ansi.LIGHT_BLUE)
    println color("LIGHT_GREEN", Ansi.LIGHT_GREEN)
    println color("LIGHT_CYAN", Ansi.LIGHT_CYAN)
    println color("LIGHT_RED", Ansi.LIGHT_RED)
    println color("LIGHT_PURPLE", Ansi.LIGHT_PURPLE)
    println color("LIGHT_YELLOW", Ansi.LIGHT_YELLOW)

    println(
    [
    'Look', Ansi.LIGHT_RED,
    'ma', Ansi.REVERSE_VIDEO,
    ',', Ansi.GREEN,
    'no ', Ansi.MAGENTA,
    'hands!', Ansi.LIGHT_YELLOW
    ]
    .collate(2)
    .collect { pair ->
    color(pair.first(), pair.last())
    }.join(' ')
    )


    /**
    * Small ANSI coloring utility.
    *
    * @see http://www.bluesock.org/~willg/dev/ansi.html
    * @see https://gist.github.com/dainkaplan/4651352
    */
    class Ansi {

    static final String NORMAL = "\u001B[0m"

    static final String BOLD = "\u001B[1m"
    static final String ITALIC = "\u001B[3m"
    static final String UNDERLINE = "\u001B[4m"
    static final String BLINK = "\u001B[5m"
    static final String RAPID_BLINK = "\u001B[6m"
    static final String REVERSE_VIDEO = "\u001B[7m"
    static final String INVISIBLE_TEXT = "\u001B[8m"

    static final String BLACK = "\u001B[30m"
    static final String RED = "\u001B[31m"
    static final String GREEN = "\u001B[32m"
    static final String YELLOW = "\u001B[33m"
    static final String BLUE = "\u001B[34m"
    static final String MAGENTA = "\u001B[35m"
    static final String CYAN = "\u001B[36m"
    static final String WHITE = "\u001B[37m"

    static final String DARK_GRAY = "\u001B[1;30m"
    static final String LIGHT_RED = "\u001B[1;31m"
    static final String LIGHT_GREEN = "\u001B[1;32m"
    static final String LIGHT_YELLOW = "\u001B[1;33m"
    static final String LIGHT_BLUE = "\u001B[1;34m"
    static final String LIGHT_PURPLE = "\u001B[1;35m"
    static final String LIGHT_CYAN = "\u001B[1;36m"

    static String color(String text, String ansiValue) {
    ansiValue + text + NORMAL
    }

    }