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  }