You've already forked ionscale
mirror of
https://github.com/jsiebens/ionscale.git
synced 2026-04-05 12:32:58 +01:00
68 lines
2.3 KiB
Go
68 lines
2.3 KiB
Go
package cmd
|
|
|
|
import (
|
|
"github.com/jsiebens/ionscale/internal/config"
|
|
"github.com/jsiebens/ionscale/internal/server"
|
|
"github.com/muesli/coral"
|
|
"time"
|
|
)
|
|
|
|
func serverCommand() *coral.Command {
|
|
command := &coral.Command{
|
|
Use: "server",
|
|
Short: "Start an ionscale server",
|
|
SilenceUsage: true,
|
|
}
|
|
|
|
var cbf = configByFlags{}
|
|
var configFile string
|
|
|
|
cbf.prepareCommand(command)
|
|
command.Flags().StringVarP(&configFile, "config", "c", "", "Path to the configuration file.")
|
|
|
|
command.RunE = func(command *coral.Command, args []string) error {
|
|
|
|
c, err := config.LoadConfig(configFile, &cbf.c)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return server.Start(c)
|
|
}
|
|
|
|
return command
|
|
}
|
|
|
|
type configByFlags struct {
|
|
c config.Config
|
|
}
|
|
|
|
func (c *configByFlags) prepareCommand(cmd *coral.Command) {
|
|
cmd.Flags().StringVar(&c.c.HttpListenAddr, "http-listen-addr", "", "")
|
|
cmd.Flags().StringVar(&c.c.HttpsListenAddr, "https-listen-addr", "", "")
|
|
cmd.Flags().StringVar(&c.c.MetricsListenAddr, "metrics-listen-addr", "", "")
|
|
cmd.Flags().StringVar(&c.c.ServerUrl, "server-url", "", "")
|
|
|
|
cmd.Flags().BoolVar(&c.c.Tls.Disable, "tls-disable", false, "")
|
|
cmd.Flags().BoolVar(&c.c.Tls.ForceHttps, "tls-force-https", true, "")
|
|
cmd.Flags().StringVar(&c.c.Tls.CertFile, "tls-cert-file", "", "")
|
|
cmd.Flags().StringVar(&c.c.Tls.KeyFile, "tls-key-file", "", "")
|
|
cmd.Flags().BoolVar(&c.c.Tls.AcmeEnabled, "tls-acme", false, "")
|
|
cmd.Flags().StringVar(&c.c.Tls.AcmeEmail, "tls-acme-email", "", "")
|
|
cmd.Flags().StringVar(&c.c.Tls.AcmeCA, "tls-acme-ca", "", "")
|
|
cmd.Flags().StringVar(&c.c.Tls.AcmePath, "tls-acme-path", "", "")
|
|
|
|
cmd.Flags().DurationVar(&c.c.PollNet.KeepAliveInterval, "poll-net-keep-alive-interval", 1*time.Minute, "")
|
|
|
|
cmd.Flags().StringVar(&c.c.Keys.SystemAdminKey, "system-admin-key", "", "")
|
|
cmd.Flags().StringVar(&c.c.Keys.ControlKey, "control-key", "", "")
|
|
cmd.Flags().StringVar(&c.c.Keys.LegacyControlKey, "legacy-control-key", "", "")
|
|
|
|
cmd.Flags().StringVar(&c.c.Database.Type, "database-type", "", "")
|
|
cmd.Flags().StringVar(&c.c.Database.Url, "database-url", "", "")
|
|
|
|
cmd.Flags().StringVar(&c.c.Logging.Level, "logging-level", "", "")
|
|
cmd.Flags().StringVar(&c.c.Logging.Format, "logging-format", "", "")
|
|
cmd.Flags().StringVar(&c.c.Logging.File, "logging-file", "", "")
|
|
}
|