kubelwagen/serve.go

43 lines
821 B
Go

package kubelwagen
import (
"fmt"
"os"
"os/signal"
"time"
"github.com/sirupsen/logrus"
)
func Serve(hostport string, dir string, opts *WsFsOpts) {
closer := make(chan bool)
signalChan := make(chan os.Signal, 1)
signal.Notify(signalChan, os.Interrupt)
go func() {
for range signalChan {
fmt.Println("\nReceived an interrupt, disconnecting...")
close(closer)
}
}()
req := make(chan RequestCallback, 5)
go func(dir string, closer chan bool) {
err := serveFuse(dir, req, *opts, closer)
if err != nil {
logrus.Fatalf("Error serving FUSE: %s", err)
}
}(dir, closer)
go func(hostport string, closer chan bool) {
err := serveHTTP(hostport, req, closer)
if err != nil {
logrus.Fatalf("Error serving HTTP: %s", err)
}
}(hostport, closer)
<-closer
time.Sleep(2 * time.Second)
}