summaryrefslogtreecommitdiff
path: root/vendor/github.com/jackc/pgservicefile/pgservicefile.go
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2025-03-09 17:47:56 +0100
committerLibravatar Terin Stock <terinjokes@gmail.com>2025-03-10 01:59:49 +0100
commit3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch)
treef61faa581feaaeaba2542b9f2b8234a590684413 /vendor/github.com/jackc/pgservicefile/pgservicefile.go
parent[chore] update URLs to forked source (diff)
downloadgotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz
[chore] remove vendor
Diffstat (limited to 'vendor/github.com/jackc/pgservicefile/pgservicefile.go')
-rw-r--r--vendor/github.com/jackc/pgservicefile/pgservicefile.go81
1 files changed, 0 insertions, 81 deletions
diff --git a/vendor/github.com/jackc/pgservicefile/pgservicefile.go b/vendor/github.com/jackc/pgservicefile/pgservicefile.go
deleted file mode 100644
index c62caa7fe..000000000
--- a/vendor/github.com/jackc/pgservicefile/pgservicefile.go
+++ /dev/null
@@ -1,81 +0,0 @@
-// Package pgservicefile is a parser for PostgreSQL service files (e.g. .pg_service.conf).
-package pgservicefile
-
-import (
- "bufio"
- "errors"
- "fmt"
- "io"
- "os"
- "strings"
-)
-
-type Service struct {
- Name string
- Settings map[string]string
-}
-
-type Servicefile struct {
- Services []*Service
- servicesByName map[string]*Service
-}
-
-// GetService returns the named service.
-func (sf *Servicefile) GetService(name string) (*Service, error) {
- service, present := sf.servicesByName[name]
- if !present {
- return nil, errors.New("not found")
- }
- return service, nil
-}
-
-// ReadServicefile reads the file at path and parses it into a Servicefile.
-func ReadServicefile(path string) (*Servicefile, error) {
- f, err := os.Open(path)
- if err != nil {
- return nil, err
- }
- defer f.Close()
-
- return ParseServicefile(f)
-}
-
-// ParseServicefile reads r and parses it into a Servicefile.
-func ParseServicefile(r io.Reader) (*Servicefile, error) {
- servicefile := &Servicefile{}
-
- var service *Service
- scanner := bufio.NewScanner(r)
- lineNum := 0
- for scanner.Scan() {
- lineNum += 1
- line := scanner.Text()
- line = strings.TrimSpace(line)
-
- if line == "" || strings.HasPrefix(line, "#") {
- // ignore comments and empty lines
- } else if strings.HasPrefix(line, "[") && strings.HasSuffix(line, "]") {
- service = &Service{Name: line[1 : len(line)-1], Settings: make(map[string]string)}
- servicefile.Services = append(servicefile.Services, service)
- } else if service != nil {
- parts := strings.SplitN(line, "=", 2)
- if len(parts) != 2 {
- return nil, fmt.Errorf("unable to parse line %d", lineNum)
- }
-
- key := strings.TrimSpace(parts[0])
- value := strings.TrimSpace(parts[1])
-
- service.Settings[key] = value
- } else {
- return nil, fmt.Errorf("line %d is not in a section", lineNum)
- }
- }
-
- servicefile.servicesByName = make(map[string]*Service, len(servicefile.Services))
- for _, service := range servicefile.Services {
- servicefile.servicesByName[service.Name] = service
- }
-
- return servicefile, scanner.Err()
-}