github.com/letsencrypt/boulder@v0.20251208.0/cmd/boulder-observer/main.go (about) 1 package notmain 2 3 import ( 4 "flag" 5 "os" 6 7 "github.com/letsencrypt/boulder/cmd" 8 "github.com/letsencrypt/boulder/observer" 9 "github.com/letsencrypt/boulder/strictyaml" 10 ) 11 12 func main() { 13 debugAddr := flag.String("debug-addr", "", "Debug server address override") 14 configPath := flag.String( 15 "config", "config.yml", "Path to boulder-observer configuration file") 16 flag.Parse() 17 18 configYAML, err := os.ReadFile(*configPath) 19 cmd.FailOnError(err, "failed to read config file") 20 21 // Parse the YAML config file. 22 var config observer.ObsConf 23 err = strictyaml.Unmarshal(configYAML, &config) 24 25 if *debugAddr != "" { 26 config.DebugAddr = *debugAddr 27 } 28 29 if err != nil { 30 cmd.FailOnError(err, "failed to parse YAML config") 31 } 32 33 // Make an `Observer` object. 34 observer, err := config.MakeObserver() 35 if err != nil { 36 cmd.FailOnError(err, "config failed validation") 37 } 38 39 // Start the `Observer` daemon. 40 observer.Start() 41 } 42 43 func init() { 44 cmd.RegisterCommand("boulder-observer", main, &cmd.ConfigValidator{Config: &observer.ObsConf{}}) 45 }