color to output of registry command
This commit is contained in:
		
							parent
							
								
									cca5052df8
								
							
						
					
					
						commit
						66c081b766
					
				|  | @ -4,12 +4,14 @@ Copyright © 2024 NAME HERE <EMAIL ADDRESS> | ||||||
| package cmd | package cmd | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" |  | ||||||
| 	"os" | 	"os" | ||||||
|  | 	"strconv" | ||||||
| 	"text/tabwriter" | 	"text/tabwriter" | ||||||
|  | 	"unicode/utf8" | ||||||
| 
 | 
 | ||||||
| 	"github.com/LorenzHohermuth/origami/internal/registry" | 	"github.com/LorenzHohermuth/origami/internal/registry" | ||||||
| 	"github.com/LorenzHohermuth/origami/internal/splitter" | 	"github.com/LorenzHohermuth/origami/internal/splitter" | ||||||
|  | 	"github.com/fatih/color" | ||||||
| 	"github.com/spf13/cobra" | 	"github.com/spf13/cobra" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | @ -27,8 +29,17 @@ var registryCmd = &cobra.Command{ | ||||||
| 
 | 
 | ||||||
| 		tw := new(tabwriter.Writer) | 		tw := new(tabwriter.Writer) | ||||||
| 		tw.Init(os.Stdout, 0, 8, 0, '\t', 0) | 		tw.Init(os.Stdout, 0, 8, 0, '\t', 0) | ||||||
|  | 
 | ||||||
|  | 		red := color.New(color.FgRed) | ||||||
|  | 		green := color.New(color.FgGreen) | ||||||
|  | 		formatterString := "value: \"%s\" key: %." + strconv.Itoa(tr.BitLength) + "b \n" | ||||||
|  | 
 | ||||||
| 		for v, k := range tr.Map { | 		for v, k := range tr.Map { | ||||||
| 			fmt.Fprintf(tw, "value: \"%s\" \t key: %d \n", v, k) | 			if utf8.RuneCountInString(binary(v)) < tr.BitLength { | ||||||
|  | 				red.Fprintf(tw, formatterString, v, k) | ||||||
|  | 			} else { | ||||||
|  | 				green.Fprintf(tw, formatterString, v, k) | ||||||
|  | 			} | ||||||
| 		} | 		} | ||||||
| 		tw.Flush() | 		tw.Flush() | ||||||
| 	}, | 	}, | ||||||
|  |  | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | package cmd | ||||||
|  | 
 | ||||||
|  | import "fmt" | ||||||
|  | 
 | ||||||
|  | func binary(s string) string { | ||||||
|  |     res := "" | ||||||
|  |     for _, c := range s { | ||||||
|  |         res = fmt.Sprintf("%s%.8b", res, c) | ||||||
|  |     } | ||||||
|  |     return res | ||||||
|  | } | ||||||
							
								
								
									
										5
									
								
								go.mod
								
								
								
								
							
							
						
						
									
										5
									
								
								go.mod
								
								
								
								
							|  | @ -5,6 +5,11 @@ go 1.22.2 | ||||||
| require github.com/spf13/cobra v1.8.0 | require github.com/spf13/cobra v1.8.0 | ||||||
| 
 | 
 | ||||||
| require ( | require ( | ||||||
|  | 	github.com/fatih/color v1.17.0 // indirect | ||||||
| 	github.com/inconshreveable/mousetrap v1.1.0 // indirect | 	github.com/inconshreveable/mousetrap v1.1.0 // indirect | ||||||
|  | 	github.com/mattn/go-colorable v0.1.13 // indirect | ||||||
|  | 	github.com/mattn/go-isatty v0.0.20 // indirect | ||||||
| 	github.com/spf13/pflag v1.0.5 // indirect | 	github.com/spf13/pflag v1.0.5 // indirect | ||||||
|  | 	github.com/wayneashleyberry/truecolor v1.0.1 // indirect | ||||||
|  | 	golang.org/x/sys v0.18.0 // indirect | ||||||
| ) | ) | ||||||
|  |  | ||||||
							
								
								
									
										13
									
								
								go.sum
								
								
								
								
							
							
						
						
									
										13
									
								
								go.sum
								
								
								
								
							|  | @ -1,10 +1,23 @@ | ||||||
| github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= | github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= | ||||||
|  | github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= | ||||||
|  | github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= | ||||||
| github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= | github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= | ||||||
| github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= | github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= | ||||||
|  | github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= | ||||||
|  | github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= | ||||||
|  | github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= | ||||||
|  | github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= | ||||||
|  | github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= | ||||||
| github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | ||||||
| github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= | github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= | ||||||
| github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= | github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= | ||||||
| github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= | github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= | ||||||
| github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= | github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= | ||||||
|  | github.com/wayneashleyberry/truecolor v1.0.1 h1:REnJBycjnvg0AFErbLx2GCmLLar8brlqm62kOKnRsGs= | ||||||
|  | github.com/wayneashleyberry/truecolor v1.0.1/go.mod h1:fyL3jRES70g94n+Eu+XLhXYvcseza55ph8zlkmUKW7Q= | ||||||
|  | golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
|  | golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
|  | golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= | ||||||
|  | golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||||
|  |  | ||||||
|  | @ -1,13 +1,24 @@ | ||||||
| package registry | package registry | ||||||
| 
 | 
 | ||||||
|  | import ( | ||||||
|  | 	"strconv" | ||||||
|  | 	"unicode/utf8" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
| type TokenRegistry struct { | type TokenRegistry struct { | ||||||
|  | 	BitLength int | ||||||
| 	Map       map[string]int64 | 	Map       map[string]int64 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (tr TokenRegistry) DistributeTokens(list [][]string) { | func (tr *TokenRegistry) DistributeTokens(list [][]string) { | ||||||
|  | 	var highestNum int64 | ||||||
| 	for _, file := range list { | 	for _, file := range list { | ||||||
| 		for _, value := range file { | 		for _, value := range file { | ||||||
| 			tr.Map[value] = int64(len(tr.Map)) | 			num := int64(len(tr.Map)) | ||||||
|  | 			highestNum = num | ||||||
|  | 			tr.Map[value] = num | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  | 	binHightNum := strconv.FormatInt(highestNum, 2) | ||||||
|  | 	tr.BitLength = utf8.RuneCountInString(binHightNum) | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue