mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-23 23:03:10 -06:00
46 lines
1.3 KiB
Go
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)
|
|
}
|
|
}
|
|
}
|