123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- package main
- import (
- "embed"
- "flag"
- "fmt"
- "net/http"
- "os"
- "os/signal"
- "syscall"
- "imuslab.com/bokofs/bokofsd/mod/bokofs"
- "imuslab.com/bokofs/bokofsd/mod/bokofs/bokoworker"
- )
- //go:embed web/*
- var embeddedFiles embed.FS
- func main() {
- flag.Parse()
- // Start the application
- err := initialization()
- if err != nil {
- panic(err)
- }
- // Capture termination signals and call cleanup
- signalChan := make(chan os.Signal, 1)
- signal.Notify(signalChan, os.Interrupt, syscall.SIGTERM)
- go func() {
- <-signalChan
- fmt.Println("Received termination signal, cleaning up...")
- cleanup()
- os.Exit(0)
- }()
- //DEBUG
- wds, err := bokofs.NewWebdavInterfaceServer("/disk/", "/thumb/")
- if err != nil {
- panic(err)
- }
- test, err := bokoworker.NewFSWorker(&bokoworker.Options{
- NodeName: "test",
- ServePath: "./test",
- ThumbnailStore: "./tmp/test/",
- })
- if err != nil {
- panic(err)
- }
- wds.AddWorker(test)
- test2, err := bokoworker.NewFSWorker(&bokoworker.Options{
- NodeName: "test2",
- ServePath: "./mod",
- ThumbnailStore: "./tmp/mod/",
- })
- if err != nil {
- panic(err)
- }
- wds.AddWorker(test2)
- //END DEBUG
- /* Static Web Server */
- http.Handle("/", csrfMiddleware(http.FileServer(webfs)))
- /* WebDAV Handlers */
- http.Handle("/disk/", wds.FsHandler()) //Note the trailing slash
- http.Handle("/thumb/", wds.ThumbHandler()) //Note the trailing slash
- /* REST API Handlers */
- http.Handle("/meta", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- // TODO: Implement handler logic for /meta
- fmt.Fprintln(w, "Meta handler not implemented yet")
- }))
- http.Handle("/api/", csrfMiddleware(HandlerAPIcalls()))
- addr := fmt.Sprintf(":%d", *httpPort)
- fmt.Printf("Starting static web server on %s\n", addr)
- if err := http.ListenAndServe(addr, nil); err != nil {
- fmt.Fprintf(os.Stderr, "Error starting server: %v\n", err)
- os.Exit(1)
- }
- }
|