carve out cmd, stub server impl

This commit is contained in:
Barak Michener 2018-03-28 14:29:55 -07:00
parent 51fa79ef2f
commit 90aa93a1d7
64 changed files with 10564 additions and 3 deletions

45
serve.go Normal file
View file

@ -0,0 +1,45 @@
package kubelwagen
import (
"fmt"
"os"
"os/signal"
"sync"
"github.com/sirupsen/logrus"
)
func Serve(hostport string, dir string) {
closer := make(chan bool)
var wg sync.WaitGroup
signalChan := make(chan os.Signal, 1)
signal.Notify(signalChan, os.Interrupt)
go func() {
for range signalChan {
fmt.Println("\nReceived an interrupt, disconnecting...")
close(closer)
}
}()
wg.Add(2)
go func(dir string, closer chan bool) {
err := serveFuse(dir, closer)
if err != nil {
logrus.Fatalf("Error serving FUSE: %s", err)
}
wg.Done()
}(dir, closer)
go func(hostport string, closer chan bool) {
err := serveHTTP(hostport, closer)
if err != nil {
logrus.Fatalf("Error serving HTTP: %s", err)
}
wg.Done()
}(hostport, closer)
wg.Wait()
}