package main import ( "flag" "os" "path/filepath" ) // 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 { home, _ := os.UserHomeDir() return Config{ Port: 8090, DagsDir: filepath.Join(home, "dagu", "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) }