diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..3eb75be --- /dev/null +++ b/.drone.yml @@ -0,0 +1,17 @@ +--- +kind: pipeline +type: docker +name: default + +steps: + - name: build + image: golang + commands: + - go build + - name: docker + image: plugins/docker + settings: + repo: kekskurse/ett + username: kekskurse + password: + from_secret: docker_password \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..46e9224 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,6 @@ +FROM scratch +COPY ./eventTimeTracking /ett +#RUN ls -lah / +#RUN chmod uog+rwx /ett +#RUN /ett +CMD ["/ett"] \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ce58ba8 --- /dev/null +++ b/Makefile @@ -0,0 +1,2 @@ +build: + CGO_ENABLED=0 GOOS=linux go build ./ \ No newline at end of file diff --git a/eventTimeTracking b/eventTimeTracking new file mode 100755 index 0000000..6a9afa7 Binary files /dev/null and b/eventTimeTracking differ diff --git a/main.go b/main.go index 7b03371..d2f90c7 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( "bufio" "encoding/json" + "flag" "github.com/rs/zerolog/log" "net/http" "os" @@ -16,12 +17,19 @@ type Event struct { eventTimestamp time.Time } +var eventlog string + //Current State var lastEvent Event var currentState map[string]map[string]int64 //Per Name per Day in Secounds func main() { + eventlogPath := flag.String("eventlog", "/var/ett/eventlog", "Where to store the eventlog file") + + flag.Parse() + eventlog = *eventlogPath + log.Info().Msg("Start Time Tracking Service") currentState = make(map[string]map[string]int64) @@ -120,9 +128,9 @@ func runHttpServer() { } func readStateFromFile() { - if _, err := os.Stat("eventlog"); err == nil { + if _, err := os.Stat(eventlog); err == nil { // path/to/whatever exists - file, err := os.Open("eventlog") + file, err := os.Open(eventlog) if err != nil { log.Fatal().Err(err).Msg("Cant open file") @@ -151,7 +159,7 @@ func readStateFromFile() { func saveEvent(e Event) { var line string line = e.eventTimestamp.Format(time.RFC3339)+";"+e.name+"\r\n" - f, err := os.OpenFile("eventlog", os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600) + f, err := os.OpenFile(eventlog, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600) if err != nil { panic(err) }