From 82e2b05925e82ddc1e9dc108e1050a434b24e71e Mon Sep 17 00:00:00 2001 From: filifa Date: Wed, 4 Sep 2024 21:35:38 -0500 Subject: [PATCH] refactor stdin check --- cmd/root.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index 9739d54..ba99a94 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -18,7 +18,6 @@ package cmd import ( "errors" - "log" "os" "github.com/spf13/cobra" @@ -28,6 +27,21 @@ import ( var presets []string var transition bool +/* + * checkStdin checks if any data has been passed in through stdin and returns + * an error if we don't believe so. + */ +func checkStdin() error { + stat, err := os.Stdin.Stat() + if err != nil { + return err + } else if (stat.Mode() & os.ModeCharDevice) != 0 { + return errors.New("nothing to read from stdin") + } + + return nil +} + /* * validatePresets performs some basic checks on the presets passed in and * returns an error if it finds a problem. @@ -108,11 +122,9 @@ func update(m *milkDropWindow) (bool, error) { * milkbucket sets up the program and starts a rendering loop. */ func milkbucket(cmd *cobra.Command, args []string) { - stat, err := os.Stdin.Stat() + err := checkStdin() if err != nil { panic(err) - } else if (stat.Mode() & os.ModeCharDevice) != 0 { - log.Fatal("nothing to read from stdin") } err = sdl.Init(sdl.INIT_VIDEO)