dendrite/cmd/dendrite-polylith-server/main.go
2020-10-20 13:45:51 +01:00

46 lines
1.3 KiB
Go

package main
import (
"flag"
"fmt"
"github.com/matrix-org/dendrite/cmd/dendrite/personalities"
"github.com/matrix-org/dendrite/internal/config"
"github.com/matrix-org/dendrite/internal/setup"
)
type starter func(base *setup.BaseDendrite, cfg *config.Dendrite)
// nolint:gocyclo
func main() {
cfg := setup.ParseFlags(true)
component := flag.Arg(0)
base := setup.NewBaseDendrite(cfg, component, false) // TODO
defer base.Close() // nolint: errcheck
components := map[string]starter{
"appservice": personalities.Appservice,
"clientapi": personalities.ClientAPI,
"eduserver": personalities.EDUServer,
"federationapi": personalities.FederationAPI,
"federationsender": personalities.FederationSender,
"keyserver": personalities.KeyServer,
"mediaapi": personalities.MediaAPI,
"roomserver": personalities.RoomServer,
"signingkeyserver": personalities.SigningKeyServer,
"syncapi": personalities.SyncAPI,
"userapi": personalities.UserAPI,
}
if start, ok := components[component]; ok {
start(base, cfg)
} else {
fmt.Printf("dendrite: unknown component %q\n", component)
fmt.Println("valid components:")
for c := range components {
fmt.Printf("- %s\n", c)
}
}
}