Skip to content

Commit

Permalink
Merge branch 'update-cfg-load-and-logs' into 'main'
Browse files Browse the repository at this point in the history
chore: update cfg load and logs

See merge request BobyMCbobs/go-http-server!26
  • Loading branch information
BobyMCbobs committed Dec 19, 2023
2 parents d5cb091 + ad71c23 commit 7aefb81
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 9 deletions.
26 changes: 21 additions & 5 deletions pkg/common/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -245,14 +245,27 @@ func GetRequestIP(r *http.Request) (requestIP string) {
return headerValue
}

type statusRecorder struct {
http.ResponseWriter
Status int
}

func (r *statusRecorder) WriteHeader(status int) {
r.Status = status
r.ResponseWriter.WriteHeader(status)
}

// Logging ...
// a basic middleware for logging
func Logging(next http.Handler) http.Handler {
// log all requests
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
requestIP := GetRequestIP(r)
log.Printf("%v %v %v %v %v %v %#v", r.Method, r.URL, r.Proto, r.Response, requestIP, r.RemoteAddr, r.Header)
next.ServeHTTP(w, r)
recorder := &statusRecorder{
ResponseWriter: w,
}
next.ServeHTTP(recorder, r)
log.Printf("%v %v %v %v %v %v %#v", recorder.Status, r.Method, r.URL, r.Proto, requestIP, r.RemoteAddr, r.Header)
})
}

Expand All @@ -268,15 +281,18 @@ type DotfileConfig struct {

// LoadDotfileConfig ...
// loads a .ghs.yaml in the serve folder
func LoadDotfileConfig(serveFolder string) (cfg DotfileConfig, err error) {
func LoadDotfileConfig(serveFolder string) (cfg *DotfileConfig, err error) {
configPath := path.Join(serveFolder, AppServeFolderConfigName)
if _, err := os.Stat(configPath); err != nil {
return nil, nil
}
file, err := os.ReadFile(configPath)
if err != nil {
return DotfileConfig{}, err
return &DotfileConfig{}, err
}
err = yaml.Unmarshal(file, &cfg)
if err != nil {
return DotfileConfig{}, err
return &DotfileConfig{}, err
}
return cfg, nil
}
Expand Down
7 changes: 3 additions & 4 deletions pkg/httpserver/httpserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ func NewWebServer() *WebServer {
cfg, err := common.LoadDotfileConfig(w.ServeFolder)
if err != nil {
log.Printf("error loading dotfile config: %v\n", err)
} else {
} else if cfg != nil {
w.VueJSHistoryMode = cfg.HistoryMode
if cfg.RedirectRoutes != nil {
w.RedirectRoutes = cfg.RedirectRoutes
Expand All @@ -108,7 +108,6 @@ func NewWebServer() *WebServer {
if cfg.TemplateMap != nil {
w.TemplateMap = cfg.TemplateMap
}

if w.HeaderMap != nil {
w.HeaderMapEnabled = true
}
Expand Down Expand Up @@ -216,7 +215,7 @@ func (w *WebServer) LoadTemplateMap() *WebServer {
}
if w.TemplateMap == nil {
if _, err := os.Stat(w.TemplateMapPath); os.IsNotExist(err) {
log.Printf("[notice] history mode is enabled, template maps (currently set to '%v') can also be used\n", w.TemplateMapPath)
log.Printf("[notice] history mode templating is enabled, template maps (currently set to '%v') can also be used\n", w.TemplateMapPath)
return w
}
configMap, err := common.LoadMapConfig(w.TemplateMapPath)
Expand All @@ -243,7 +242,7 @@ func (w *WebServer) LoadHeaderMap() *WebServer {
}
if w.HeaderMap == nil {
if _, err := os.Stat(w.HeaderMapPath); os.IsNotExist(err) {
log.Printf("[notice] history mode is enabled, template maps (currently set to '%v') can also be used\n", w.TemplateMapPath)
log.Printf("[notice] header templating is enabled, header template maps (currently set to '%v') can also be used\n", w.HeaderMapPath)
return w
}
headerMap, err := common.LoadHeaderMapConfig(w.HeaderMapPath)
Expand Down

0 comments on commit 7aefb81

Please sign in to comment.