diff options
Diffstat (limited to 'go/util')
-rw-r--r-- | go/util/util.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/go/util/util.go b/go/util/util.go new file mode 100644 index 0000000..d56f662 --- /dev/null +++ b/go/util/util.go @@ -0,0 +1,41 @@ +package util + +import ( + "bufio" + "fmt" + "os" + "strings" + + "github.com/confluentinc/confluent-kafka-go/v2/kafka" +) + +func ReadConfig(configFile string) kafka.ConfigMap { + m := make(map[string]kafka.ConfigValue) + + file, err := os.Open(configFile) + if err != nil { + fmt.Fprintf(os.Stderr, "Failed to open file: %s", err) + os.Exit(1) + } + defer file.Close() + + scanner := bufio.NewScanner(file) + for scanner.Scan() { + line := strings.TrimSpace(scanner.Text()) + if !strings.HasPrefix(line, "#") && len(line) != 0 { + before, after, found := strings.Cut(line, "=") + if found { + parameter := strings.TrimSpace(before) + value := strings.TrimSpace(after) + m[parameter] = value + } + } + } + + if err := scanner.Err(); err != nil { + fmt.Printf("Failed to read file: %s", err) + os.Exit(1) + } + + return m +} |