# Ansi terminal colors (def- colormap {:black 30 :bg-black 40 :red 31 :bg-red 41 :green 32 :bg-green 42 :yellow 33 :bg-yellow 43 :blue 34 :bg-blue 44 :magenta 35 :bg-magenta 45 :cyan 36 :bg-cyan 46 :white 37 :bg-white 47 :bright-black 90 :bg-bright-black 100 :bright-red 91 :bg-bright-red 101 :bright-green 92 :bg-bright-green 102 :bright-yellow 93 :bg-bright-yellow 103 :bright-blue 94 :bg-bright-blue 104 :bright-magenta 95 :bg-bright-magenta 105 :bright-cyan 96 :bg-bright-cyan 106 :bright-white 97 :bg-bright-white 107}) (defn color "Take a string made by concatenating xs and colorize it for an ANSI terminal." [c & xs] (def code (get colormap c)) (if (not code) (error (string "color " c " unknown"))) (string "\e[" code "m" ;xs "\e[0m")) # Print all colors (loop [c :keys colormap] (print (color c c)))