fix(backend): use randomcolor fork

Forked code doesn't require any locks
This commit is contained in:
Łukasz Mierzwa
2021-07-05 22:06:28 +01:00
committed by Łukasz Mierzwa
parent 5801ab2c7e
commit 50cd656cf3
3 changed files with 6 additions and 11 deletions

2
go.mod
View File

@@ -19,7 +19,6 @@ require (
github.com/go-openapi/validate v0.20.2
github.com/golang/protobuf v1.5.2 // indirect
github.com/google/go-cmp v0.5.6
github.com/hansrodtang/randomcolor v0.0.0-20160512071917-d27108b3d7a5
github.com/hashicorp/golang-lru v0.5.4
github.com/jarcoal/httpmock v1.0.8
github.com/knadh/koanf v1.1.1
@@ -28,6 +27,7 @@ require (
github.com/pmezard/go-difflib v1.0.0
github.com/prometheus/client_golang v1.11.0
github.com/prometheus/common v0.29.0
github.com/prymitive/randomcolor v0.0.0-20210705210145-26c3401033a6
github.com/rogpeppe/go-internal v1.8.0
github.com/rs/zerolog v1.23.0
github.com/spf13/pflag v1.0.5

4
go.sum
View File

@@ -326,8 +326,6 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/hansrodtang/randomcolor v0.0.0-20160512071917-d27108b3d7a5 h1:9WT/rQ2tZI0TBZhBsA/dYU1bdI2QKaUzQ3X6YDwaLUY=
github.com/hansrodtang/randomcolor v0.0.0-20160512071917-d27108b3d7a5/go.mod h1:XvzgNvkcPBKMxeywFlPioejZ5ulXi/GMLZDoBw915FA=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
@@ -512,6 +510,8 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4=
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
github.com/prymitive/randomcolor v0.0.0-20210705210145-26c3401033a6 h1:zL1c7Tzs1zTkak2si4V5Y0kop6Bue7UMN4ML68PGpIg=
github.com/prymitive/randomcolor v0.0.0-20210705210145-26c3401033a6/go.mod h1:FnzxethsFNTR5+dT5nOGHEmV7DS7U6ml/kw2HFv5Q+8=
github.com/rhnvrm/simples3 v0.6.1/go.mod h1:Y+3vYm2V7Y4VijFoJHHTrja6OgPrJ2cBti8dPGkC3sA=
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=

View File

@@ -5,19 +5,16 @@ import (
"image/color"
"io"
"math/rand"
"sync"
"github.com/prymitive/karma/internal/config"
"github.com/prymitive/karma/internal/models"
"github.com/prymitive/karma/internal/slices"
"github.com/hansrodtang/randomcolor"
"github.com/prymitive/randomcolor"
"github.com/rs/zerolog/log"
plcolors "gopkg.in/go-playground/colors.v1"
)
var lock sync.RWMutex
func labelToSeed(key string, val string) int64 {
h := sha1.New()
_, _ = io.WriteString(h, key)
@@ -31,10 +28,8 @@ func labelToSeed(key string, val string) int64 {
}
func colorFromKeyVal(key, val string) color.Color {
lock.Lock()
defer lock.Unlock()
rand.Seed(labelToSeed(key, val))
return randomcolor.New(randomcolor.Random, randomcolor.LIGHT)
r := rand.New(rand.NewSource(labelToSeed(key, val)))
return randomcolor.New(r, randomcolor.Random, randomcolor.LIGHT)
}
func rgbToBrightness(r, g, b uint8) int32 {