From 00260eae771011ce55153219e930078b02f74b17 Mon Sep 17 00:00:00 2001 From: Sjur Fredriksen Date: Sun, 14 Mar 2021 23:25:43 +0100 Subject: [PATCH] add some config as env vars --- build.sh | 2 +- cmd/server.go | 8 ++++++-- main.go | 11 +++++++++-- xmltv/xmltv.go | 27 +++++++++++++++++---------- 4 files changed, 33 insertions(+), 15 deletions(-) diff --git a/build.sh b/build.sh index 43baef2..66a7b35 100755 --- a/build.sh +++ b/build.sh @@ -1,2 +1,2 @@ #/bin/sh -docker build . -t xmltv-exporter +docker build . -t xmltv-exporter:development diff --git a/cmd/server.go b/cmd/server.go index 4ae2a97..36cd071 100644 --- a/cmd/server.go +++ b/cmd/server.go @@ -10,12 +10,16 @@ import ( "xmltv-exporter/xmltv" ) -func ServeEpg() { +func ServeEpg(port string) { http.HandleFunc("/channels-norway.xml", ChannelListHandler) http.HandleFunc("/", ChannelHandler) - if err := http.ListenAndServe(":8080", nil); err != nil { + if port == "" { + port = "8080" + } + + if err := http.ListenAndServe(":"+port, nil); err != nil { log.Fatal(err) } } diff --git a/main.go b/main.go index 2127581..50d4226 100644 --- a/main.go +++ b/main.go @@ -1,8 +1,15 @@ package main -import "xmltv-exporter/cmd" +import ( + "os" + "xmltv-exporter/cmd" + "xmltv-exporter/xmltv" +) func main() { + xmltv.Init(os.Getenv("XMLTV_DOMAIN")) + cmd.MapEgp() - cmd.ServeEpg() + cmd.ServeEpg(os.Getenv("XMLTV_PORT")) + } diff --git a/xmltv/xmltv.go b/xmltv/xmltv.go index 2ec6944..2d84394 100644 --- a/xmltv/xmltv.go +++ b/xmltv/xmltv.go @@ -9,15 +9,23 @@ import ( ) const ( - XmltvDateFormat = "20060102150400 -0700" - XmltvEpisodeStd = "xmtv_ns" - GeneratorName = "xmltv.sjurtf.net" - GeneratorUrl = "https://xmltv.sjurtf.net/" - DocHeader = `` + XmltvDateFormat = "20060102150400 -0700" + XmltvEpisodeStd = "xmtv_ns" + GeneratorName = "xmltv.sjurtf.net" + DocHeader = `` + defaultGeneratorUrl = "https://xmltv.sjurtf.net/" ) var channelCache []tv2.Channel var channelGuideMap map[string]map[string][]tv2.Program +var generatorUrl string + +func Init(url string) { + generatorUrl = defaultGeneratorUrl + if url != "" { + generatorUrl = url + } +} func BuildCache(date time.Time, channel tv2.Channel) { if channelGuideMap == nil { @@ -51,10 +59,9 @@ func GetChannelList() ([]byte, error) { var programs []Programme for _, c := range channelCache { channel := Channel{ - Id: xmlChannelIdMap[c.Id], - Name: c.Name, - //BaseUrl: GeneratorUrl, - BaseUrl: "http://host.docker.internal:8080/", + Id: xmlChannelIdMap[c.Id], + Name: c.Name, + BaseUrl: generatorUrl, } channels = append(channels, channel) } @@ -97,7 +104,7 @@ func getProgramsForChannel(channelId string, date time.Time) []Programme { func marshall(channels []Channel, programs []Programme) ([]byte, error) { resp := Response{ GeneratorName: GeneratorName, - GeneratorUrl: GeneratorUrl, + GeneratorUrl: generatorUrl, ChannelList: channels, ProgrammeList: programs, }