From c57b1675c67129986de7f0b377a9471ba1bd4ba2 Mon Sep 17 00:00:00 2001 From: Georg Hopp Date: Mon, 1 Oct 2018 12:20:18 +0200 Subject: [PATCH] Add first main.go ... --- main.go | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 main.go diff --git a/main.go b/main.go new file mode 100644 index 0000000..8557f2f --- /dev/null +++ b/main.go @@ -0,0 +1,75 @@ +/* +This is some stuff... + +Authors: +Georg Hopp + +Changes: +2018-09-30 [Georg Hopp] File created. + +Copyright © 2018 Georg Hopp + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +package test + +import ( + "encoding/json" + "net/http" + "strings" + "os" + "io" +) + +type ApiHandler struct {} + +type version struct { + Version string `json:"Version"` + BuildCommit string `json:"BuildCommint"` + BuildTime string `json:"BuildTimestamp"` +} + +func (handler *ApiHandler) ServeHTTP( + response ResponseWriter, + request *Request, +) { + dirs := strings.split(request.URL.Path, "/") + switch dirs[0] { + case "version": + v, err := json.Marshal( + version{ + VERSION, + REVISION, + BUILD_TIME, + }, + ) + if err != nil { + http.Error(w, "Unable to encode version information", 500) + return + } + io.WriteString(w, string(v[:])) + default: + http.NotFound(w, req) + return + } +} + +func router() { + http.HandleFunc( + "/api/0.0.1/", + http.StripPrefix("/api/0.0.1/", ApiHandler{}), + ) +} + +// vim: ts=4 sts=4 sw=4 noet tw=72: