package main import ( "flag" ) // Config holds the runtime configuration for the DAG engine. type Config struct { Port int DagsDir string DBPath string AutoScheduler bool } // DefaultConfig returns sensible defaults. func DefaultConfig() Config { return Config{ Port: 8090, DagsDir: "dags", DBPath: "dag_engine.db", } } // ParseFlags populates config from CLI flags for the "server" subcommand. func (c *Config) ParseFlags(fs *flag.FlagSet, args []string) error { fs.IntVar(&c.Port, "port", c.Port, "HTTP server port") fs.StringVar(&c.DagsDir, "dags-dir", c.DagsDir, "directory containing DAG YAML files") fs.StringVar(&c.DBPath, "db", c.DBPath, "path to SQLite database") fs.BoolVar(&c.AutoScheduler, "scheduler", c.AutoScheduler, "auto-start cron scheduler") return fs.Parse(args) }