can add directorys to registry

This commit is contained in:
Lorenz Hohermuth 2024-05-09 16:48:47 +02:00
parent 35f3944548
commit 77db13c2b2
3 changed files with 54 additions and 7 deletions

View File

@ -27,7 +27,7 @@ var registryCmd = &cobra.Command{
tw := new(tabwriter.Writer)
tw.Init(os.Stdout, 0, 8, 0, '\t', 0)
for v, k := range tr.Map {
fmt.Fprintf(tw, "value: %s \t key: %b \n", v, k)
fmt.Fprintf(tw, "value: \"%s\" \t key: %b \n", v, k)
}
tw.Flush()
},

View File

@ -4,8 +4,10 @@ type TokenRegistry struct{
Map map[string]int64
}
func (tr TokenRegistry) DistributeTokens(list []string) {
for _, v := range list {
tr.Map[v] = int64(len(tr.Map))
func (tr TokenRegistry) DistributeTokens(list [][]string) {
for _, file := range list {
for _, value := range file {
tr.Map[value] = int64(len(tr.Map))
}
}
}

View File

@ -6,10 +6,29 @@ import (
"strings"
)
func SplitFile(path string) []string {
fileContent := getFileContent(path)
return strings.Fields(fileContent)
func SplitFile(path string) [][]string {
if path == "" {
return make([][]string, 0)
}
info, err := os.Stat(path)
if err != nil {
panic(err)
}
if info.IsDir() {
paths := getFilePathsFromDir(path)
matrix := make([][]string, len(paths))
for _, filePath := range paths {
matrix = addToMatrix(matrix, SplitFile(filePath))
}
return matrix
} else {
matrix := make([][]string, 1)
matrix[0] = tokenize(getFileContent(path))
return matrix
}
}
func getFileContent(path string) string{
data, err := os.ReadFile(path)
@ -18,3 +37,29 @@ func getFileContent(path string) string{
}
return string(data)
}
func getFilePathsFromDir(path string) []string{
files, err := os.ReadDir(path)
if err != nil {
panic(fmt.Errorf("Directory could not be found %s", path))
}
var paths = make([]string, len(files))
for _, file := range files {
pathToFile := fmt.Sprintf("%s/%s", path, file.Name())
paths = append(paths, pathToFile)
}
return paths
}
func tokenize(s string) []string {
return strings.Fields(s)
}
func addToMatrix(addToMatrix [][]string, getsAddedToMatrix [][]string) [][]string {
for _, slice := range getsAddedToMatrix {
addToMatrix = append(addToMatrix, slice)
}
return addToMatrix
}