86 lines
1.8 KiB
Go
86 lines
1.8 KiB
Go
package heroagent
|
|
|
|
import (
|
|
"time"
|
|
|
|
"git.ourworld.tf/herocode/heroagent/pkg/servers/ui"
|
|
"git.ourworld.tf/herocode/heroagent/pkg/servers/webdavserver"
|
|
)
|
|
|
|
// Config holds the configuration for the HeroAgent server factory
|
|
type Config struct {
|
|
// Redis server configuration
|
|
Redis RedisConfig
|
|
|
|
// WebDAV server configuration
|
|
WebDAV WebDAVConfig
|
|
|
|
// UI server configuration
|
|
UI UIConfig
|
|
|
|
// Job management configuration
|
|
Jobs JobsConfig
|
|
|
|
// Enable/disable specific servers
|
|
EnableRedis bool
|
|
EnableWebDAV bool
|
|
EnableUI bool
|
|
EnableJobs bool
|
|
}
|
|
|
|
// RedisConfig holds the configuration for the Redis server
|
|
type RedisConfig struct {
|
|
TCPPort int
|
|
UnixSocketPath string
|
|
}
|
|
|
|
// WebDAVConfig holds the configuration for the WebDAV server
|
|
type WebDAVConfig struct {
|
|
// Use webdavserver.Config directly
|
|
Config webdavserver.Config
|
|
}
|
|
|
|
// UIConfig holds the configuration for the UI server
|
|
type UIConfig struct {
|
|
// UI server configuration
|
|
Port string
|
|
// Any additional UI-specific configuration
|
|
AppConfig ui.AppConfig
|
|
}
|
|
|
|
// JobsConfig holds the configuration for the job management system
|
|
type JobsConfig struct {
|
|
// OurDB configuration
|
|
OurDBPath string
|
|
|
|
// Job processing configuration
|
|
WorkerCount int
|
|
QueuePollInterval time.Duration
|
|
}
|
|
|
|
// DefaultConfig returns the default configuration for the HeroAgent
|
|
func DefaultConfig() Config {
|
|
return Config{
|
|
Redis: RedisConfig{
|
|
TCPPort: 6379,
|
|
UnixSocketPath: "", // Empty string means use TCP only
|
|
},
|
|
WebDAV: WebDAVConfig{
|
|
Config: webdavserver.DefaultConfig(),
|
|
},
|
|
UI: UIConfig{
|
|
Port: "9001", // Port is a string in UIConfig
|
|
AppConfig: ui.AppConfig{},
|
|
},
|
|
Jobs: JobsConfig{
|
|
OurDBPath: "./data/ourdb",
|
|
WorkerCount: 5,
|
|
QueuePollInterval: 100 * time.Millisecond,
|
|
},
|
|
EnableRedis: true,
|
|
EnableWebDAV: true,
|
|
EnableUI: true,
|
|
EnableJobs: true,
|
|
}
|
|
}
|