|
|
|
// 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
|
|
|
|
|
|
|
|
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
|
|
|
|
}
|