You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
paopao-ce/internal/service/service.go

66 lines
1.1 KiB

// Copyright 2022 ROC. All rights reserved.
// Use of this source code is governed by a MIT style
// license that can be found in the LICENSE file.
package service
2 years ago
import (
"log"
"github.com/rocboss/paopao-ce/pkg/cfg"
"github.com/rocboss/paopao-ce/pkg/types"
)
type Service interface {
Name() string
Init() error
Start() error
Stop() error
}
type baseService types.Empty
func (baseService) Name() string {
return ""
}
func (baseService) String() string {
return ""
}
func InitService() []Service {
ss := newService()
for _, s := range ss {
if err := s.Init(); err != nil {
log.Fatalf("initial %s service error: %s", s.Name(), err)
}
}
return ss
}
func newService() (ss []Service) {
ss = append(ss, newWebService())
// add oldWebService if not depredcated OldWebService
cfg.Not("Deprecated:OldWeb", func() {
ss = append(ss, newOldWebService())
})
cfg.In(cfg.Actions{
"Admin": func() {
ss = append(ss, newAdminService())
},
"SpaceX": func() {
ss = append(ss, newSpaceXService())
},
"Bot": func() {
ss = append(ss, newBotService())
},
"LocalOSS": func() {
ss = append(ss, newLocalossService())
},
})
return
}