Skip to content

Commit

Permalink
Color option in cmd tool
Browse files Browse the repository at this point in the history
  • Loading branch information
NathanBaulch authored and guptarohit committed May 3, 2022
1 parent 8a067c4 commit db79f40
Show file tree
Hide file tree
Showing 2 changed files with 160 additions and 2 deletions.
18 changes: 16 additions & 2 deletions cmd/asciigraph/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package main

import (
"bufio"
"errors"
"flag"
"fmt"
"log"
Expand All @@ -21,6 +22,7 @@ var (
enableRealTime bool
realTimeDataBuffer int
fps float64 = 24
color asciigraph.AnsiColor
)

func main() {
Expand All @@ -39,6 +41,14 @@ func main() {
flag.BoolVar(&enableRealTime, "r", enableRealTime, "enables `realtime` graph for data stream")
flag.IntVar(&realTimeDataBuffer, "b", realTimeDataBuffer, "data points `buffer` when realtime graph enabled, default equal to `width`")
flag.Float64Var(&fps, "f", fps, "set `fps` to control how frequently graph to be rendered when realtime graph enabled")
flag.Func("l", "`color` of the data line", func(str string) error {
if c, ok := asciigraph.ColorNames[str]; !ok {
return errors.New("unrecognized color")
} else {
color = c
return nil
}
})
flag.Parse()

data := make([]float64, 0, 64)
Expand Down Expand Up @@ -73,7 +83,9 @@ func main() {
asciigraph.Width(int(width)),
asciigraph.Offset(int(offset)),
asciigraph.Precision(precision),
asciigraph.Caption(caption))
asciigraph.Caption(caption),
asciigraph.SeriesColors(color),
)
asciigraph.Clear()
fmt.Println(plot)
nextFlushTime = time.Now().Add(flushInterval)
Expand All @@ -94,7 +106,9 @@ func main() {
asciigraph.Width(int(width)),
asciigraph.Offset(int(offset)),
asciigraph.Precision(precision),
asciigraph.Caption(caption))
asciigraph.Caption(caption),
asciigraph.SeriesColors(color),
)

fmt.Println(plot)
}
Expand Down
144 changes: 144 additions & 0 deletions color.go
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,150 @@ var (
YellowGreen AnsiColor = 149
)

var ColorNames = map[string]AnsiColor{
"default": Default,
"aliceblue": AliceBlue,
"antiquewhite": AntiqueWhite,
"aqua": Aqua,
"aquamarine": Aquamarine,
"azure": Azure,
"beige": Beige,
"bisque": Bisque,
"black": Black,
"blanchedalmond": BlanchedAlmond,
"blue": Blue,
"blueviolet": BlueViolet,
"brown": Brown,
"burlywood": BurlyWood,
"cadetblue": CadetBlue,
"chartreuse": Chartreuse,
"chocolate": Chocolate,
"coral": Coral,
"cornflowerblue": CornflowerBlue,
"cornsilk": Cornsilk,
"crimson": Crimson,
"cyan": Cyan,
"darkblue": DarkBlue,
"darkcyan": DarkCyan,
"darkgoldenrod": DarkGoldenrod,
"darkgray": DarkGray,
"darkgreen": DarkGreen,
"darkkhaki": DarkKhaki,
"darkmagenta": DarkMagenta,
"darkolivegreen": DarkOliveGreen,
"darkorange": DarkOrange,
"darkorchid": DarkOrchid,
"darkred": DarkRed,
"darksalmon": DarkSalmon,
"darkseagreen": DarkSeaGreen,
"darkslateblue": DarkSlateBlue,
"darkslategray": DarkSlateGray,
"darkturquoise": DarkTurquoise,
"darkviolet": DarkViolet,
"deeppink": DeepPink,
"deepskyblue": DeepSkyBlue,
"dimgray": DimGray,
"dodgerblue": DodgerBlue,
"firebrick": Firebrick,
"floralwhite": FloralWhite,
"forestgreen": ForestGreen,
"fuchsia": Fuchsia,
"gainsboro": Gainsboro,
"ghostwhite": GhostWhite,
"gold": Gold,
"goldenrod": Goldenrod,
"gray": Gray,
"green": Green,
"greenyellow": GreenYellow,
"honeydew": Honeydew,
"hotpink": HotPink,
"indianred": IndianRed,
"indigo": Indigo,
"ivory": Ivory,
"khaki": Khaki,
"lavender": Lavender,
"lavenderblush": LavenderBlush,
"lawngreen": LawnGreen,
"lemonchiffon": LemonChiffon,
"lightblue": LightBlue,
"lightcoral": LightCoral,
"lightcyan": LightCyan,
"lightgoldenrodyellow": LightGoldenrodYellow,
"lightgray": LightGray,
"lightgreen": LightGreen,
"lightpink": LightPink,
"lightsalmon": LightSalmon,
"lightseagreen": LightSeaGreen,
"lightskyblue": LightSkyBlue,
"lightslategray": LightSlateGray,
"lightsteelblue": LightSteelBlue,
"lightyellow": LightYellow,
"lime": Lime,
"limegreen": LimeGreen,
"linen": Linen,
"magenta": Magenta,
"maroon": Maroon,
"mediumaquamarine": MediumAquamarine,
"mediumblue": MediumBlue,
"mediumorchid": MediumOrchid,
"mediumpurple": MediumPurple,
"mediumseagreen": MediumSeaGreen,
"mediumslateblue": MediumSlateBlue,
"mediumspringgreen": MediumSpringGreen,
"mediumturquoise": MediumTurquoise,
"mediumvioletred": MediumVioletRed,
"midnightblue": MidnightBlue,
"mintcream": MintCream,
"mistyrose": MistyRose,
"moccasin": Moccasin,
"navajowhite": NavajoWhite,
"navy": Navy,
"oldlace": OldLace,
"olive": Olive,
"olivedrab": OliveDrab,
"orange": Orange,
"orangered": OrangeRed,
"orchid": Orchid,
"palegoldenrod": PaleGoldenrod,
"palegreen": PaleGreen,
"paleturquoise": PaleTurquoise,
"palevioletred": PaleVioletRed,
"papayawhip": PapayaWhip,
"peachpuff": PeachPuff,
"peru": Peru,
"pink": Pink,
"plum": Plum,
"powderblue": PowderBlue,
"purple": Purple,
"red": Red,
"rosybrown": RosyBrown,
"royalblue": RoyalBlue,
"saddlebrown": SaddleBrown,
"salmon": Salmon,
"sandybrown": SandyBrown,
"seagreen": SeaGreen,
"seashell": SeaShell,
"sienna": Sienna,
"silver": Silver,
"skyblue": SkyBlue,
"slateblue": SlateBlue,
"slategray": SlateGray,
"snow": Snow,
"springgreen": SpringGreen,
"steelblue": SteelBlue,
"tan": Tan,
"teal": Teal,
"thistle": Thistle,
"tomato": Tomato,
"turquoise": Turquoise,
"violet": Violet,
"wheat": Wheat,
"white": White,
"whitesmoke": WhiteSmoke,
"yellow": Yellow,
"yellowgreen": YellowGreen,
}

func (c AnsiColor) String() string {
if c == Default {
return "\x1b[0m"
Expand Down

0 comments on commit db79f40

Please sign in to comment.