diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-02-23 12:57:59 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-02-23 12:57:59 +0900 |
| commit | 478b27922cf9084dc63e4084875f36a5427ba734 (patch) | |
| tree | 5ffac42f38e9e93326cd50ee2fbf3bbc0776ea2e /main.go | |
| parent | ba1498cd181bf47a2b154aca1bcade804b790b69 (diff) | |
fortify: handle errors via MustParse
The errSuccess behaviour is kept for beforeExit.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 32 |
1 files changed, 8 insertions, 24 deletions
@@ -53,30 +53,14 @@ func main() { log.Fatal("this program must not run as root") } - err := buildCommand(os.Stderr).Parse(os.Args[1:]) - if errors.Is(err, errSuccess) || errors.Is(err, command.ErrHelp) { - internal.Exit(0) - panic("unreachable") - } - if errors.Is(err, command.ErrNoMatch) || errors.Is(err, command.ErrEmptyTree) { - internal.Exit(1) - panic("unreachable") - } - if err == nil { - log.Fatal("unreachable") - } - - var flagError command.FlagError - if !errors.As(err, &flagError) { - log.Printf("command: %v", err) - internal.Exit(1) - panic("unreachable") - } - fmsg.Verbose(flagError.Error()) - if flagError.Success() { - internal.Exit(0) - } - internal.Exit(1) + buildCommand(os.Stderr).MustParse(os.Args[1:], func(err error) { + fmsg.Verbosef("command returned %v", err) + if errors.Is(err, errSuccess) { + fmsg.BeforeExit() + os.Exit(0) + } + }) + log.Fatal("unreachable") } func buildCommand(out io.Writer) command.Command { |
