Files
OpenFlare/backend/cmd/flared/main.go
T

42 lines
962 B
Go

// Copyright 2026 Arctel.net
// SPDX-License-Identifier: Apache-2.0
// Command flared runs the OpenFlare tunnel client daemon.
package main
import (
"flag"
"log/slog"
"os"
"time"
"Wavelet/core"
flaredplugin "Wavelet/openflare/plugins/flared"
edgelogging "Wavelet/openflare/share/edge/logging"
)
// shutdownTimeout 为 frpc 子进程收敛预留的退出窗口。
const shutdownTimeout = 60 * time.Second
func main() {
edgelogging.Setup(edgelogging.Options{})
configPath := flag.String("config", "./flared.json", "flared config path")
flag.Parse()
app := core.NewApp(
core.WithProfile(core.Profile(flaredplugin.DriverTypeFlared)),
core.WithShutdownTimeout(shutdownTimeout),
)
app.Use(flaredplugin.New(*configPath))
if err := app.Prepare(); err != nil {
slog.Error("flared startup failed", "error", err)
os.Exit(1)
}
if err := app.Run(); err != nil {
slog.Error("flared process exited with error", "error", err)
os.Exit(1)
}
}