mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-02-03 22:18:39 +00:00
Rename service_manager.go to commands_service_manager.go to follow the established naming pattern with other command files. Remove the unused CommandRunner interface from commands.go since it's not being used anywhere in the codebase. Clean up unused imports. This improves consistency in file naming and removes dead code.
42 lines
1014 B
Go
42 lines
1014 B
Go
package cli
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
"github.com/kardianos/service"
|
|
)
|
|
|
|
// dialSocketControlServerTimeout is the default timeout to wait when ping control server.
|
|
const dialSocketControlServerTimeout = 30 * time.Second
|
|
|
|
// ServiceManager handles service operations
|
|
type ServiceManager struct {
|
|
prog *prog
|
|
svc service.Service
|
|
}
|
|
|
|
// NewServiceManager creates a new service manager
|
|
func NewServiceManager() (*ServiceManager, error) {
|
|
p := &prog{}
|
|
|
|
// Create a proper service configuration
|
|
svcConfig := &service.Config{
|
|
Name: ctrldServiceName,
|
|
DisplayName: "Control-D Helper Service",
|
|
Description: "A highly configurable, multi-protocol DNS forwarding proxy",
|
|
Option: service.KeyValue{},
|
|
}
|
|
|
|
s, err := newService(p, svcConfig)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to create service: %w", err)
|
|
}
|
|
return &ServiceManager{prog: p, svc: s}, nil
|
|
}
|
|
|
|
// Status returns the current service status
|
|
func (sm *ServiceManager) Status() (service.Status, error) {
|
|
return sm.svc.Status()
|
|
}
|