summaryrefslogtreecommitdiffstats
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/ini/ini.go51
1 files changed, 0 insertions, 51 deletions
diff --git a/internal/ini/ini.go b/internal/ini/ini.go
deleted file mode 100644
index c546a52..0000000
--- a/internal/ini/ini.go
+++ /dev/null
@@ -1,51 +0,0 @@
-package ini
-
-import (
- "bufio"
- "errors"
- "io"
- "iter"
- "strings"
-)
-
-type Parser struct {
- Section string
- LineNumber int
-}
-
-type KeyVal struct {
- Key, Val string
-}
-
-func (p *Parser) Parse(r io.Reader) iter.Seq2[KeyVal, error] {
- return func(yield func(KeyVal, error) bool) {
- *p = Parser{}
- scanner := bufio.NewScanner(r)
- for scanner.Scan() {
- p.LineNumber++
- line := strings.TrimSpace(scanner.Text())
- if len(line) == 0 || strings.HasPrefix(line, "//") || strings.HasPrefix(line, ";") || strings.HasPrefix(line, "#") {
- continue
- }
- if strings.HasPrefix(line, "[") && strings.HasSuffix(line, "]") {
- p.Section = strings.TrimSpace(line[1 : len(line)-1])
- continue
- }
- key, val, ok := strings.Cut(line, "=")
- if !ok {
- if !yield(KeyVal{}, errors.New("invalid key-value pair")) {
- return
- }
- continue
- }
- key, val = strings.TrimSpace(key), strings.TrimSpace(val)
- if !yield(KeyVal{key, val}, nil) {
- return
- }
- }
- if err := scanner.Err(); err != nil {
- yield(KeyVal{}, err)
- return
- }
- }
-}