@@ -13,19 +13,20 @@ import (
1313 "github.com/rs/zerolog/log"
1414)
1515
16- const version = "v0.4.1 "
16+ const version = "v0.5.3 "
1717
1818type server struct {
1919 mux * http.ServeMux
2020 cfg * http.Server
21+ pth * string
2122}
2223
2324func init () {
2425 log .Logger = log .Output (zerolog.ConsoleWriter {Out : os .Stderr , TimeFormat : time .RFC3339 })
2526 zerolog .SetGlobalLevel (zerolog .InfoLevel )
2627}
2728
28- func newServer (port , read , write , idle int ) * server {
29+ func newServer (port , read , write , idle int , path string ) * server {
2930 log .Debug ().Msg ("entering newServer" )
3031
3132 s := & server {}
@@ -37,6 +38,7 @@ func newServer(port, read, write, idle int) *server {
3738 WriteTimeout : time .Duration (write ) * time .Second ,
3839 IdleTimeout : time .Duration (idle ) * time .Second ,
3940 }
41+ s .pth = & path
4042 s .routes ()
4143
4244 log .Log ().
@@ -45,6 +47,7 @@ func newServer(port, read, write, idle int) *server {
4547 Str ("readTimeout" , s .cfg .ReadTimeout .String ()).
4648 Str ("writeTimeout" , s .cfg .WriteTimeout .String ()).
4749 Str ("idleTimeout" , s .cfg .IdleTimeout .String ()).
50+ Str ("path" , path ).
4851 Msg ("erised server running" )
4952
5053 log .Debug ().Msg ("leaving newServer" )
@@ -66,6 +69,7 @@ func setupFlags(f *flag.FlagSet) {
6669 fmt .Println ("X-Erised-Headers:\t \t Returns the value(s) in the response header(s). Values must be in a JSON array" )
6770 fmt .Println ("X-Erised-Location:\t \t Sets the response Location when 300 ≤ X-Erised-Status-Code < 310" )
6871 fmt .Println ("X-Erised-Response-Delay:\t Number of milliseconds to wait before sending response back to client" )
72+ fmt .Println ("X-Erised-Response-File:\t \t Returns the contents of file in the response body. If present, X-Erised-Data is ignored" )
6973 fmt .Println ("X-Erised-Status-Code:\t \t Sets the HTTP Status Code" )
7074 fmt .Println ()
7175 }
@@ -82,6 +86,7 @@ func main() {
8286 it := flag .Int ("idle" , 120 , "maximum time in seconds to wait for the next request when keep-alive is enabled" )
8387 lv := flag .String ("level" , "info" , "one of debug/info/warn/error/off" )
8488 lf := flag .Bool ("json" , false , "use JSON log format" )
89+ ph := flag .String ("path" , "." , "path to search recursively for X-Erised-Response-File" )
8590
8691 setupFlags (flag .CommandLine )
8792 flag .Parse ()
@@ -103,7 +108,7 @@ func main() {
103108 log .Logger = zerolog .New (os .Stderr ).With ().Timestamp ().Logger ()
104109 }
105110
106- srv := newServer (* pt , * rt , * wt , * it )
111+ srv := newServer (* pt , * rt , * wt , * it , * ph )
107112
108113 if err := srv .cfg .ListenAndServe (); err != nil {
109114 switch err {
0 commit comments