2019-10-29 14:38:29 -07:00
|
|
|
package main
|
2019-10-29 13:30:51 -07:00
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"net/http"
|
|
|
|
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
|
|
|
|
|
|
"github.com/mxpv/podsync/pkg/config"
|
|
|
|
)
|
|
|
|
|
|
|
|
type Server struct {
|
|
|
|
http.Server
|
|
|
|
}
|
|
|
|
|
2019-10-29 14:38:29 -07:00
|
|
|
func NewServer(cfg *config.Config) *Server {
|
2019-10-29 13:30:51 -07:00
|
|
|
port := cfg.Server.Port
|
|
|
|
if port == 0 {
|
|
|
|
port = 8080
|
|
|
|
}
|
2020-10-27 13:29:42 +08:00
|
|
|
bindAddress := cfg.Server.BindAddress
|
|
|
|
if bindAddress == "*" {
|
|
|
|
bindAddress = ""
|
|
|
|
}
|
2019-10-29 13:30:51 -07:00
|
|
|
srv := Server{}
|
|
|
|
|
2020-10-27 13:29:42 +08:00
|
|
|
srv.Addr = fmt.Sprintf("%s:%d", bindAddress, port)
|
|
|
|
log.Debugf("using address: %s:%s", bindAddress, srv.Addr)
|
2019-10-29 13:30:51 -07:00
|
|
|
|
|
|
|
fs := http.FileServer(http.Dir(cfg.Server.DataDir))
|
2020-10-27 13:29:42 +08:00
|
|
|
path := cfg.Server.Path
|
|
|
|
http.Handle(fmt.Sprintf("/%s", path), fs)
|
|
|
|
log.Debugf("handle path: /%s", path)
|
2019-10-29 13:30:51 -07:00
|
|
|
|
|
|
|
return &srv
|
|
|
|
}
|