initial commit
This commit is contained in:
commit
3053f89410
39 changed files with 4567 additions and 0 deletions
64
cmd/cachefs/main.go
Normal file
64
cmd/cachefs/main.go
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
// Copyright (C) 2022 Marius Schellenberger
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"flag"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"cachefs/pkg/fs"
|
||||
"cachefs/pkg/srv"
|
||||
|
||||
"github.com/go-logr/logr"
|
||||
"k8s.io/klog/v2"
|
||||
"k8s.io/klog/v2/klogr"
|
||||
)
|
||||
|
||||
var (
|
||||
version string
|
||||
|
||||
src string
|
||||
dst string
|
||||
metadata string
|
||||
listen string
|
||||
|
||||
log logr.Logger
|
||||
)
|
||||
|
||||
func main() {
|
||||
klog.InitFlags(nil)
|
||||
flag.StringVar(&src, "src", "", "root directory (NFS share)")
|
||||
flag.StringVar(&dst, "dst", "", "local directory to cache files")
|
||||
flag.StringVar(&metadata, "data", "", "path to metadata file")
|
||||
flag.StringVar(&listen, "listen", "127.0.0.1:8080", "listen addr:port")
|
||||
flag.Parse()
|
||||
|
||||
log = klogr.New().WithName("main")
|
||||
log.Info("starting cachefs", "version", version)
|
||||
|
||||
fs, err := fs.NewFS(src, dst, metadata, klogr.New().WithName("fs"))
|
||||
if err != nil {
|
||||
klog.Fatalf("init failed: %s", err)
|
||||
}
|
||||
s := &http.Server{Addr: listen, Handler: srv.NewFileServer(fs, klogr.New().WithName("server"))}
|
||||
go func() {
|
||||
err := s.ListenAndServe()
|
||||
if err != nil && err != http.ErrServerClosed {
|
||||
klog.Fatalf("init failed: %s", err)
|
||||
}
|
||||
}()
|
||||
sigs := make(chan os.Signal, 1)
|
||||
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
|
||||
<-sigs
|
||||
log.Info("cachefs shutdown initiated")
|
||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
|
||||
s.Shutdown(ctx)
|
||||
fs.Close()
|
||||
cancel()
|
||||
log.Info("cachefs shutdown completed")
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue