Compare commits

..

3 Commits

Author SHA1 Message Date
Renovate Bot a99b4d42a4 Update module github.com/influxdata/influxdb-client-go/v2 to v2.12.3
continuous-integration/drone/push Build is passing Details
2023-08-02 19:19:21 +00:00
nemunaire de1c9fdd7f Add tzdata in container
continuous-integration/drone/push Build is passing Details
2023-08-02 21:04:38 +02:00
nemunaire 841658d849 Treat config from environment variables
continuous-integration/drone/push Build is passing Details
2023-08-02 20:06:15 +02:00
3 changed files with 42 additions and 0 deletions

View File

@ -12,6 +12,8 @@ RUN go get -d -v && \
FROM alpine
RUN apk add --no-cache tzdata
CMD ["linky2influx"]
COPY --from=gobuild /go/src/git.nemunai.re/linky2influx/linky2influx /usr/bin/linky2influx

38
config.go Normal file
View File

@ -0,0 +1,38 @@
package main
import (
"flag"
"fmt"
"os"
"strings"
)
func parseEnvironmentVariables() (err error) {
for _, line := range os.Environ() {
if strings.HasPrefix(line, "LINKY2INFLUX_") {
err := parseConfigLine(line)
if err != nil {
return fmt.Errorf("error in environment (%q): %w", line, err)
}
}
}
return
}
func parseConfigLine(line string) (err error) {
fields := strings.SplitN(line, "=", 2)
orig_key := strings.TrimSpace(fields[0])
value := strings.TrimSpace(fields[1])
if len(value) == 0 {
return
}
key := strings.TrimPrefix(orig_key, "LINKY2INFLUX_")
key = strings.Replace(key, "_", "-", -1)
key = strings.ToLower(key)
err = flag.Set(key, value)
return
}

View File

@ -180,6 +180,8 @@ type TICWriter interface {
}
func main() {
parseEnvironmentVariables()
var legacyMode = flag.Bool("legacy-mode", false, "Assume teleinformation in legacy mode")
var pushFrequency = flag.Bool("push-frequency", false, "Also fetch data about the grid frequency")
flag.Parse()