main: add -v command line flag

Only log accesses when -v is given.
This commit is contained in:
Lars Karlitski 2019-09-14 13:56:55 +02:00
parent a63a408c06
commit 2ee12e2b51
2 changed files with 19 additions and 3 deletions

13
main.go
View file

@ -2,6 +2,8 @@ package main
import (
"context"
"flag"
"log"
"net"
"net/http"
"os"
@ -12,6 +14,10 @@ import (
)
func main() {
var verbose bool
flag.BoolVar(&verbose, "v", false, "Print access log")
flag.Parse()
err := os.Remove("/run/weldr/api.socket")
if err != nil && !os.IsNotExist(err) {
panic(err)
@ -33,7 +39,12 @@ func main() {
panic(err)
}
api := weldr.New(repo, packages)
var logger *log.Logger
if verbose {
logger = log.New(os.Stdout, "", 0)
}
api := weldr.New(repo, packages, logger)
server := http.Server{Handler: api}
shutdownDone := make(chan struct{}, 1)

View file

@ -18,14 +18,16 @@ type API struct {
repo rpmmd.RepoConfig
packages rpmmd.PackageList
logger *log.Logger
router *httprouter.Router
}
func New(repo rpmmd.RepoConfig, packages rpmmd.PackageList) *API {
func New(repo rpmmd.RepoConfig, packages rpmmd.PackageList, logger *log.Logger) *API {
api := &API{
store: newStore(),
repo: repo,
packages: packages,
logger: logger,
}
// sample blueprint
@ -68,7 +70,10 @@ func New(repo rpmmd.RepoConfig, packages rpmmd.PackageList) *API {
}
func (api *API) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
log.Println(request.URL.Path)
if api.logger != nil {
log.Println(request.Method, request.URL.Path)
}
writer.Header().Set("Content-Type", "application/json; charset=utf-8")
api.router.ServeHTTP(writer, request)
}