@@ -9,40 +9,37 @@ import (
99 "net/http/httputil"
1010)
1111
12- // Options passed via CLI
13- type Options struct {
12+ type options struct {
1413 ListenAddress string
1514 Folder string
1615 Verbose bool
1716}
1817
19- var options Options
18+ var opts options
2019
2120func main () {
22-
23- flag .StringVar (& options .ListenAddress , "listen" , "0.0.0.0:8000" , "Address:Port" )
24- flag .StringVar (& options .Folder , "path" , "." , "Folder" )
25- flag .BoolVar (& options .Verbose , "v" , false , "Verbose" )
21+ flag .StringVar (& opts .ListenAddress , "listen" , "0.0.0.0:8000" , "Address:Port" )
22+ flag .StringVar (& opts .Folder , "path" , "." , "Folder" )
23+ flag .BoolVar (& opts .Verbose , "v" , false , "Verbose" )
2624 flag .Parse ()
2725
28- if flag .NArg () > 0 && options .Folder == "." {
29- options .Folder = flag .Args ()[0 ]
26+ if flag .NArg () > 0 && opts .Folder == "." {
27+ opts .Folder = flag .Args ()[0 ]
3028 }
3129
32- log .Printf ("Serving %s on http://%s/..." , options .Folder , options .ListenAddress )
33- fmt .Println (http .ListenAndServe (options .ListenAddress , Log (http .FileServer (http .Dir (options .Folder )))))
30+ log .Printf ("Serving %s on http://%s/..." , opts .Folder , opts .ListenAddress )
31+ fmt .Println (http .ListenAndServe (opts .ListenAddress , loglayer (http .FileServer (http .Dir (opts .Folder )))))
3432}
3533
36- // Log middleware
37- func Log (handler http.Handler ) http.Handler {
34+ func loglayer (handler http.Handler ) http.Handler {
3835 return http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
3936 fullRequest , _ := httputil .DumpRequest (r , true )
40- lrw := NewLoggingResponseWriter (w )
37+ lrw := newLoggingResponseWriter (w )
4138 handler .ServeHTTP (lrw , r )
4239
43- if options .Verbose {
40+ if opts .Verbose {
4441 headers := new (bytes.Buffer )
45- lrw .Header ().Write (headers ) //nolint
42+ lrw .Header ().Write (headers )
4643 log .Printf ("\n Remote Address: %s\n %s\n %s %d %s\n %s\n %s\n " , r .RemoteAddr , string (fullRequest ), r .Proto , lrw .statusCode , http .StatusText (lrw .statusCode ), headers .String (), string (lrw .Data ))
4744 } else {
4845 log .Printf ("%s \" %s %s %s\" %d %d" , r .RemoteAddr , r .Method , r .URL , r .Proto , lrw .statusCode , len (lrw .Data ))
@@ -56,8 +53,7 @@ type loggingResponseWriter struct {
5653 Data []byte
5754}
5855
59- // NewLoggingResponseWriter structure
60- func NewLoggingResponseWriter (w http.ResponseWriter ) * loggingResponseWriter {
56+ func newLoggingResponseWriter (w http.ResponseWriter ) * loggingResponseWriter {
6157 return & loggingResponseWriter {w , http .StatusOK , []byte {}}
6258}
6359
0 commit comments