package cmd // opts holds shared command-line options for all subcommands. type opts struct { ServerURL string GrubenvPath string TimeoutSecs int PubKeyPath string } // parseOpts extracts command-line flags from args. // Simple parser — no external dependencies. func parseOpts(args []string) opts { o := opts{ GrubenvPath: "/boot/grub/grubenv", TimeoutSecs: 120, } for i := 0; i < len(args); i++ { switch args[i] { case "--server": if i+1 < len(args) { o.ServerURL = args[i+1] i++ } case "--grubenv": if i+1 < len(args) { o.GrubenvPath = args[i+1] i++ } case "--timeout": if i+1 < len(args) { val := 0 for _, c := range args[i+1] { if c >= '0' && c <= '9' { val = val*10 + int(c-'0') } } if val > 0 { o.TimeoutSecs = val } i++ } case "--pubkey": if i+1 < len(args) { o.PubKeyPath = args[i+1] i++ } } } return o }