MCPcopy
hub / github.com/yusing/godoxy / Start

Method Start

internal/route/fileserver.go:135–173  ·  view source on GitHub ↗

Start implements task.TaskStarter.

(parent task.Parent)

Source from the content-addressed store, hash-verified

133
134// Start implements task.TaskStarter.
135func (s *FileServer) Start(parent task.Parent) error {
136 s.task = parent.Subtask("fileserver."+s.Name(), false)
137 s.task.SetValue(monitor.DisplayNameKey{}, s.DisplayName())
138
139 if err := s.prepareHandler(); err != nil {
140 s.task.Finish(err)
141 return err
142 }
143
144 if s.UseAccessLog() {
145 var err error
146 s.accessLogger, err = accesslog.NewAccessLogger(s.task, s.AccessLog)
147 if err != nil {
148 s.task.Finish(err)
149 return err
150 }
151 }
152
153 if s.UseHealthCheck() {
154 s.HealthMon = monitor.NewMonitor(s)
155 if err := s.HealthMon.Start(s.task); err != nil {
156 log.Warn().EmbedObject(s).Err(err).Msg("health monitor error")
157 s.HealthMon = nil
158 }
159 }
160
161 ep := entrypoint.FromCtx(parent.Context())
162 if ep == nil {
163 err := errors.New("entrypoint not initialized")
164 s.task.Finish(err)
165 return err
166 }
167
168 if err := ep.StartAddRoute(s); err != nil {
169 s.task.Finish(err)
170 return err
171 }
172 return nil
173}
174
175func (s *FileServer) prepareHandler() error {
176 if len(s.Rules) > 0 {

Callers

nothing calls this directly

Calls 13

prepareHandlerMethod · 0.95
NewAccessLoggerFunction · 0.92
NewMonitorFunction · 0.92
ErrMethod · 0.80
NewMethod · 0.80
NameMethod · 0.65
DisplayNameMethod · 0.65
UseAccessLogMethod · 0.65
UseHealthCheckMethod · 0.65
StartMethod · 0.65
ContextMethod · 0.65
StartAddRouteMethod · 0.65

Tested by

no test coverage detected