grim/goserve
Clone
Summary
Browse
Changes
Graph
registry is already setup in the tasks
draft
2019-05-04, Gary Kramlich
fae68662c5cd
registry is already setup in the tasks
package
main
import
(
"log"
"net/http"
"os"
)
func
getenv
(
name
,
def
string
)
string
{
val
:=
os
.
Getenv
(
name
)
if
val
!=
""
{
return
val
}
return
def
}
func
newLogger
(
l
*
log
.
Logger
,
h
http
.
Handler
)
http
.
Handler
{
return
http
.
HandlerFunc
(
func
(
w
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
defer
func
()
{
l
.
Println
(
r
.
Method
,
r
.
URL
.
Path
,
r
.
RemoteAddr
,
r
.
UserAgent
())
}()
h
.
ServeHTTP
(
w
,
r
)
})
}
func
main
()
{
logger
:=
log
.
New
(
os
.
Stdout
,
""
,
log
.
LstdFlags
|
log
.
LUTC
)
fs
:=
http
.
FileServer
(
http
.
Dir
(
getenv
(
"GOSERVE_ROOT"
,
"html"
)))
if
prefix
:=
getenv
(
"GOSERVE_PREFIX"
,
""
);
prefix
!=
""
{
log
.
Printf
(
"stripping prefix %q\n"
,
prefix
)
fs
=
http
.
StripPrefix
(
prefix
,
fs
)
}
http
.
Handle
(
"/"
,
newLogger
(
logger
,
fs
))
addr
:=
getenv
(
"GOSERVE_ADDR"
,
":3000"
)
log
.
Printf
(
"Listening on %s\n"
,
addr
)
http
.
ListenAndServe
(
addr
,
nil
)
}