package app import ( "flag" "lash" "lash/internal/errx" "lash/internal/handlers" "net/http" "os" ) func New(ctx *lash.LashContext) http.Handler { mux := http.NewServeMux() share := handlers.ShareData{ Version: lash.Version, } file := handlers.FileHandler{ Ctx: ctx, } fps := flag.Args() if len(fps) < 1 { errx.FatalPerror(errx.ErrNotEnoughArgs) } for _, fp := range fps { contents, err := os.ReadFile(fp) if err != nil { errx.FatalPerror(err) } file.FileData = append(file.FileData, handlers.FileData{ Contents: contents, FileName: fp, }) } mux.HandleFunc("/", share.Handler) mux.HandleFunc("/api/receive-token", file.APIHandler) mux.HandleFunc("/"+lash.ShareLinkToken, file.FileHandler) return mux }