From c941ed33026eda026d4aa87d423712b6abd61bfd Mon Sep 17 00:00:00 2001 From: Dan Jones Date: Wed, 6 Sep 2023 16:56:55 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7=20Step=20through=20app?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/choose.go | 10 ++++++++-- app/run.go | 41 +++++++++++++++++++++++++++++++++++++++++ cmd/root.go | 45 +++++++++++++++++++++++---------------------- 3 files changed, 72 insertions(+), 24 deletions(-) create mode 100644 app/run.go diff --git a/app/choose.go b/app/choose.go index 28644b0..5fb118f 100644 --- a/app/choose.go +++ b/app/choose.go @@ -39,6 +39,12 @@ func PickFileWithConf() media.Probe { path = files.PickRandomFile() msg = fmt.Sprintf("We've selected %s\nIs that ok?", getShortPath(path)) good = boolean.Choose(msg) + if !good { + good = boolean.Choose("Would you like to quit?") + if good { + return media.Probe{} + } + } } return SetFile(path) @@ -58,7 +64,7 @@ func GetTmpFile() media.Probe { return *tmpfile } -func BailOut() { +func PickAgain() { if tmpfile != nil { os.Remove(tmpfile.Format.Path) } @@ -73,7 +79,7 @@ func Finish() { panic(err) } } - BailOut() + PickAgain() } func getShortPath(path string) string { diff --git a/app/run.go b/app/run.go new file mode 100644 index 0000000..8fad068 --- /dev/null +++ b/app/run.go @@ -0,0 +1,41 @@ +package app + +import ( + "fmt" + "os" + + "codeberg.org/danjones000/strip-beats/media" +) + +type AppStep int + +const ( + Pick AppStep = iota + Watch + Restart + Quit +) + +func quit() { + PickAgain() + fmt.Println("Goodbye!") + os.Exit(0) +} + +func Run(step AppStep) { + for step < Quit { + switch step { + case Pick: + PickAgain() + PickFileWithConf() + if file == nil { + quit() + } + case Watch: + media.Watch(file.Format.Path) + case Quit: + quit() + } + step = (step + 1) % Restart + } +} diff --git a/cmd/root.go b/cmd/root.go index 4b716ea..3054835 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -4,12 +4,12 @@ Copyright © 2023 NAME HERE package cmd import ( - "fmt" + // "fmt" "os" "codeberg.org/danjones000/strip-beats/app" // "codeberg.org/danjones000/strip-beats/input/boolean" - "codeberg.org/danjones000/strip-beats/input/list" + // "codeberg.org/danjones000/strip-beats/input/list" "github.com/spf13/cobra" ) @@ -20,27 +20,28 @@ var rootCmd = &cobra.Command{ // Uncomment the following line if your bare application // has an action associated with it: Run: func(cmd *cobra.Command, args []string) { - opt := list.List([]list.Option{ - list.SimpleItem("Yes", "", 'y'), - list.SimpleItem("No", "", 'n'), - list.SimpleItem("Maybe", "perhaps", 'm'), - }, nil) - fmt.Printf("%+v\n", opt) - // out := app.PickFileWithConf() - out := app.SetFile("/home/drj/nothing.mkv") - fmt.Println("first", out.Format.Path) - // tmp, _ := os.CreateTemp("", "audio.*.mka") - // defer os.Remove(tmp.Name()) - // fmt.Println("temp", tmp.Name()) - app.Finish() + app.Run(0) /* - fmt.Printf("%+v\n", out) - // media.Watch(out.Format.Path) - show := boolean.Choose("Show stream?") - if show { - stream := out.WantedAudioStream() - fmt.Printf("Stream %d of %s: %+v\n", stream.Index, out.Format.Path, stream) - } + opt := list.List([]list.Option{ + list.SimpleItem("Yes", "", 'y'), + list.SimpleItem("No", "", 'n'), + list.SimpleItem("Maybe", "perhaps", 'm'), + }, nil) + fmt.Printf("%+v\n", opt) + // out := app.PickFileWithConf() + out := app.SetFile("/home/drj/nothing.mkv") + fmt.Println("first", out.Format.Path) + // tmp, _ := os.CreateTemp("", "audio.*.mka") + // defer os.Remove(tmp.Name()) + // fmt.Println("temp", tmp.Name()) + app.Finish() + fmt.Printf("%+v\n", out) + // media.Watch(out.Format.Path) + show := boolean.Choose("Show stream?") + if show { + stream := out.WantedAudioStream() + fmt.Printf("Stream %d of %s: %+v\n", stream.Index, out.Format.Path, stream) + } */ }, }