From db41f0747e2ef7698895dc19db34dc0e1fe7fde4 Mon Sep 17 00:00:00 2001 From: rsteube Date: Mon, 18 Dec 2023 13:43:08 +0100 Subject: [PATCH] vhs: updates from 0.7.1 --- completers/vhs_completer/cmd/completion.go | 19 +++++++++++++++ .../vhs_completer/cmd/completion_bash.go | 19 +++++++++++++++ .../vhs_completer/cmd/completion_fish.go | 19 +++++++++++++++ .../cmd/completion_powershell.go | 19 +++++++++++++++ .../vhs_completer/cmd/completion_zsh.go | 19 +++++++++++++++ completers/vhs_completer/cmd/help.go | 7 +++++- completers/vhs_completer/cmd/manual.go | 20 ++++++++++++++++ completers/vhs_completer/cmd/new.go | 3 ++- completers/vhs_completer/cmd/publish.go | 22 +++++++++++++++++ completers/vhs_completer/cmd/record.go | 24 +++++++++++++++++++ completers/vhs_completer/cmd/root.go | 9 ++++++- completers/vhs_completer/cmd/serve.go | 8 +------ completers/vhs_completer/cmd/themes.go | 20 ++++++++++++++++ completers/vhs_completer/cmd/validate.go | 3 ++- 14 files changed, 200 insertions(+), 11 deletions(-) create mode 100644 completers/vhs_completer/cmd/completion.go create mode 100644 completers/vhs_completer/cmd/completion_bash.go create mode 100644 completers/vhs_completer/cmd/completion_fish.go create mode 100644 completers/vhs_completer/cmd/completion_powershell.go create mode 100644 completers/vhs_completer/cmd/completion_zsh.go create mode 100644 completers/vhs_completer/cmd/manual.go create mode 100644 completers/vhs_completer/cmd/publish.go create mode 100644 completers/vhs_completer/cmd/record.go create mode 100644 completers/vhs_completer/cmd/themes.go diff --git a/completers/vhs_completer/cmd/completion.go b/completers/vhs_completer/cmd/completion.go new file mode 100644 index 0000000000..2cf1d65609 --- /dev/null +++ b/completers/vhs_completer/cmd/completion.go @@ -0,0 +1,19 @@ +package cmd + +import ( + "github.com/rsteube/carapace" + "github.com/spf13/cobra" +) + +var completionCmd = &cobra.Command{ + Use: "completion", + Short: "Generate the autocompletion script for the specified shell", + Hidden: true, + Run: func(cmd *cobra.Command, args []string) {}, +} + +func init() { + carapace.Gen(completionCmd).Standalone() + + rootCmd.AddCommand(completionCmd) +} diff --git a/completers/vhs_completer/cmd/completion_bash.go b/completers/vhs_completer/cmd/completion_bash.go new file mode 100644 index 0000000000..f99edddece --- /dev/null +++ b/completers/vhs_completer/cmd/completion_bash.go @@ -0,0 +1,19 @@ +package cmd + +import ( + "github.com/rsteube/carapace" + "github.com/spf13/cobra" +) + +var completion_bashCmd = &cobra.Command{ + Use: "bash", + Short: "Generate the autocompletion script for bash", + Run: func(cmd *cobra.Command, args []string) {}, +} + +func init() { + carapace.Gen(completion_bashCmd).Standalone() + + completion_bashCmd.Flags().Bool("no-descriptions", false, "disable completion descriptions") + completionCmd.AddCommand(completion_bashCmd) +} diff --git a/completers/vhs_completer/cmd/completion_fish.go b/completers/vhs_completer/cmd/completion_fish.go new file mode 100644 index 0000000000..466dbec8de --- /dev/null +++ b/completers/vhs_completer/cmd/completion_fish.go @@ -0,0 +1,19 @@ +package cmd + +import ( + "github.com/rsteube/carapace" + "github.com/spf13/cobra" +) + +var completion_fishCmd = &cobra.Command{ + Use: "fish", + Short: "Generate the autocompletion script for fish", + Run: func(cmd *cobra.Command, args []string) {}, +} + +func init() { + carapace.Gen(completion_fishCmd).Standalone() + + completion_fishCmd.Flags().Bool("no-descriptions", false, "disable completion descriptions") + completionCmd.AddCommand(completion_fishCmd) +} diff --git a/completers/vhs_completer/cmd/completion_powershell.go b/completers/vhs_completer/cmd/completion_powershell.go new file mode 100644 index 0000000000..4652e12918 --- /dev/null +++ b/completers/vhs_completer/cmd/completion_powershell.go @@ -0,0 +1,19 @@ +package cmd + +import ( + "github.com/rsteube/carapace" + "github.com/spf13/cobra" +) + +var completion_powershellCmd = &cobra.Command{ + Use: "powershell", + Short: "Generate the autocompletion script for powershell", + Run: func(cmd *cobra.Command, args []string) {}, +} + +func init() { + carapace.Gen(completion_powershellCmd).Standalone() + + completion_powershellCmd.Flags().Bool("no-descriptions", false, "disable completion descriptions") + completionCmd.AddCommand(completion_powershellCmd) +} diff --git a/completers/vhs_completer/cmd/completion_zsh.go b/completers/vhs_completer/cmd/completion_zsh.go new file mode 100644 index 0000000000..a30fcf4e41 --- /dev/null +++ b/completers/vhs_completer/cmd/completion_zsh.go @@ -0,0 +1,19 @@ +package cmd + +import ( + "github.com/rsteube/carapace" + "github.com/spf13/cobra" +) + +var completion_zshCmd = &cobra.Command{ + Use: "zsh", + Short: "Generate the autocompletion script for zsh", + Run: func(cmd *cobra.Command, args []string) {}, +} + +func init() { + carapace.Gen(completion_zshCmd).Standalone() + + completion_zshCmd.Flags().Bool("no-descriptions", false, "disable completion descriptions") + completionCmd.AddCommand(completion_zshCmd) +} diff --git a/completers/vhs_completer/cmd/help.go b/completers/vhs_completer/cmd/help.go index f55758d2d7..dc74c12259 100644 --- a/completers/vhs_completer/cmd/help.go +++ b/completers/vhs_completer/cmd/help.go @@ -6,12 +6,17 @@ import ( ) var helpCmd = &cobra.Command{ - Use: "help", + Use: "help [command]", Short: "Help about any command", Run: func(cmd *cobra.Command, args []string) {}, } func init() { carapace.Gen(helpCmd).Standalone() + rootCmd.AddCommand(helpCmd) + + carapace.Gen(helpCmd).PositionalAnyCompletion( + carapace.ActionCommands(rootCmd), + ) } diff --git a/completers/vhs_completer/cmd/manual.go b/completers/vhs_completer/cmd/manual.go new file mode 100644 index 0000000000..4063af6282 --- /dev/null +++ b/completers/vhs_completer/cmd/manual.go @@ -0,0 +1,20 @@ +package cmd + +import ( + "github.com/rsteube/carapace" + "github.com/spf13/cobra" +) + +var manualCmd = &cobra.Command{ + Use: "manual", + Short: "Generate man pages", + Aliases: []string{"man"}, + Hidden: true, + Run: func(cmd *cobra.Command, args []string) {}, +} + +func init() { + carapace.Gen(manualCmd).Standalone() + + rootCmd.AddCommand(manualCmd) +} diff --git a/completers/vhs_completer/cmd/new.go b/completers/vhs_completer/cmd/new.go index b7fccfa128..0836e32acf 100644 --- a/completers/vhs_completer/cmd/new.go +++ b/completers/vhs_completer/cmd/new.go @@ -6,13 +6,14 @@ import ( ) var newCmd = &cobra.Command{ - Use: "new", + Use: "new ", Short: "Create a new tape file with example tape file contents and documentation", Run: func(cmd *cobra.Command, args []string) {}, } func init() { carapace.Gen(newCmd).Standalone() + rootCmd.AddCommand(newCmd) carapace.Gen(rootCmd).PositionalCompletion( diff --git a/completers/vhs_completer/cmd/publish.go b/completers/vhs_completer/cmd/publish.go new file mode 100644 index 0000000000..35e6d6cade --- /dev/null +++ b/completers/vhs_completer/cmd/publish.go @@ -0,0 +1,22 @@ +package cmd + +import ( + "github.com/rsteube/carapace" + "github.com/spf13/cobra" +) + +var publishCmd = &cobra.Command{ + Use: "publish ", + Short: "Publish your GIF to vhs.charm.sh and get a shareable URL", + Run: func(cmd *cobra.Command, args []string) {}, +} + +func init() { + carapace.Gen(publishCmd).Standalone() + + rootCmd.AddCommand(publishCmd) + + carapace.Gen(publishCmd).PositionalCompletion( + carapace.ActionFiles(), + ) +} diff --git a/completers/vhs_completer/cmd/record.go b/completers/vhs_completer/cmd/record.go new file mode 100644 index 0000000000..0259fd5853 --- /dev/null +++ b/completers/vhs_completer/cmd/record.go @@ -0,0 +1,24 @@ +package cmd + +import ( + "github.com/rsteube/carapace" + "github.com/rsteube/carapace-bin/pkg/actions/os" + "github.com/spf13/cobra" +) + +var recordCmd = &cobra.Command{ + Use: "record", + Short: "Create a new tape file by recording your actions", + Run: func(cmd *cobra.Command, args []string) {}, +} + +func init() { + carapace.Gen(recordCmd).Standalone() + + recordCmd.Flags().StringP("shell", "s", "", "shell for recording") + rootCmd.AddCommand(recordCmd) + + carapace.Gen(recordCmd).FlagCompletion(carapace.ActionMap{ + "shell": os.ActionShells(), + }) +} diff --git a/completers/vhs_completer/cmd/root.go b/completers/vhs_completer/cmd/root.go index cd0adea800..93823a0455 100644 --- a/completers/vhs_completer/cmd/root.go +++ b/completers/vhs_completer/cmd/root.go @@ -6,7 +6,7 @@ import ( ) var rootCmd = &cobra.Command{ - Use: "vhs", + Use: "vhs ", Short: "Run a given tape file and generates its outputs.", Long: "https://github.com/charmbracelet/vhs", Run: func(cmd *cobra.Command, args []string) {}, @@ -19,7 +19,14 @@ func Execute() error { func init() { carapace.Gen(rootCmd).Standalone() rootCmd.Flags().BoolP("help", "h", false, "help for vhs") + rootCmd.Flags().StringSliceP("output", "o", []string{}, "file name(s) of video output") + rootCmd.Flags().BoolP("publish", "p", false, "publish your GIF to vhs.charm.sh and get a shareable URL") rootCmd.Flags().BoolP("version", "v", false, "version for vhs") + rootCmd.PersistentFlags().BoolP("quiet", "q", false, "quiet do not log messages. If publish flag is provided, it will log shareable URL") + + carapace.Gen(rootCmd).FlagCompletion(carapace.ActionMap{ + "output": carapace.ActionFiles(), + }) carapace.Gen(rootCmd).PositionalCompletion( carapace.ActionFiles(".tape"), diff --git a/completers/vhs_completer/cmd/serve.go b/completers/vhs_completer/cmd/serve.go index 8c6ef85b44..2d366b16e5 100644 --- a/completers/vhs_completer/cmd/serve.go +++ b/completers/vhs_completer/cmd/serve.go @@ -2,7 +2,6 @@ package cmd import ( "github.com/rsteube/carapace" - "github.com/rsteube/carapace-bin/pkg/actions/net" "github.com/spf13/cobra" ) @@ -14,11 +13,6 @@ var serveCmd = &cobra.Command{ func init() { carapace.Gen(serveCmd).Standalone() - serveCmd.Flags().StringP("host", "l", "0.0.0.0", "host to listen on") - serveCmd.Flags().IntP("port", "p", 1976, "port to listen on") - rootCmd.AddCommand(serveCmd) - carapace.Gen(serveCmd).FlagCompletion(carapace.ActionMap{ - "port": net.ActionPorts(), - }) + rootCmd.AddCommand(serveCmd) } diff --git a/completers/vhs_completer/cmd/themes.go b/completers/vhs_completer/cmd/themes.go new file mode 100644 index 0000000000..daaf1e093c --- /dev/null +++ b/completers/vhs_completer/cmd/themes.go @@ -0,0 +1,20 @@ +package cmd + +import ( + "github.com/rsteube/carapace" + "github.com/spf13/cobra" +) + +var themesCmd = &cobra.Command{ + Use: "themes", + Short: "List all the available themes, one per line", + Run: func(cmd *cobra.Command, args []string) {}, +} + +func init() { + carapace.Gen(themesCmd).Standalone() + + themesCmd.Flags().Bool("markdown", false, "output as markdown") + themesCmd.Flag("markdown").Hidden = true + rootCmd.AddCommand(themesCmd) +} diff --git a/completers/vhs_completer/cmd/validate.go b/completers/vhs_completer/cmd/validate.go index 5f0ab28715..a20c68a4dd 100644 --- a/completers/vhs_completer/cmd/validate.go +++ b/completers/vhs_completer/cmd/validate.go @@ -6,13 +6,14 @@ import ( ) var validateCmd = &cobra.Command{ - Use: "validate", + Use: "validate ...", Short: "Validate a glob file path and parses all the files to ensure they are valid without running them.", Run: func(cmd *cobra.Command, args []string) {}, } func init() { carapace.Gen(validateCmd).Standalone() + rootCmd.AddCommand(validateCmd) carapace.Gen(validateCmd).PositionalAnyCompletion(