converge/pkg/support/ioutils/utils.go

41 lines
871 B
Go

package ioutils
import (
"bufio"
"io"
"os"
"strings"
)
func FileExistsWithStats(filename string) (os.FileInfo, bool) {
stats, err := os.Stat(filename)
return stats, !os.IsNotExist(err)
}
func FileExists(filename string) bool {
_, err := os.Stat(filename)
return !os.IsNotExist(err)
}
func ReadPropertyFile(reader io.Reader) (map[string]string, error) {
scanner := bufio.NewScanner(reader)
props := make(map[string]string)
for scanner.Scan() {
line := scanner.Text()
commentCharIndex := strings.Index(line, "#")
if commentCharIndex >= 0 {
line = line[commentCharIndex+1:]
}
if equalIndex := strings.Index(line, "="); equalIndex >= 0 {
key := strings.TrimSpace(line[:equalIndex])
value := strings.TrimSpace(line[equalIndex+1:])
props[key] = value
}
}
if err := scanner.Err(); err != nil {
return nil, err
}
return props, nil
}