From c09c2ad025ec63cf0313e91b36c91456a8516a96 Mon Sep 17 00:00:00 2001 From: vilmibm Date: Thu, 4 Jun 2020 16:38:03 -0500 Subject: [PATCH] shuffle around credits command so it makes more sense --- command/credits.go | 35 +++++++++++++++++++++++------------ command/repo.go | 19 +++++++++++++++++++ 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/command/credits.go b/command/credits.go index e0187adb7..84488a35a 100644 --- a/command/credits.go +++ b/command/credits.go @@ -41,19 +41,21 @@ func init() { } var creditsCmd = &cobra.Command{ - Use: "credits [repository]", - Short: "View project's credits", - Long: `View animated credits for this or another project. - -Examples: - - gh credits # see a credits animation for this project + Use: "credits", + Short: "View credits for this tool", + Long: `View animated credits for gh, the tool you are currently using :)`, + Example: `gh credits # see a credits animation for this project gh credits owner/repo # see a credits animation for owner/repo gh credits -s # display a non-animated thank you gh credits | cat # just print the contributors, one per line `, - Args: cobra.MaximumNArgs(1), - RunE: credits, + Args: cobra.ExactArgs(0), + RunE: ghCredits, +} + +func ghCredits(cmd *cobra.Command, args []string) error { + args = []string{"cli/cli"} + return credits(cmd, args) } func credits(cmd *cobra.Command, args []string) error { @@ -64,9 +66,18 @@ func credits(cmd *cobra.Command, args []string) error { return err } - owner := "cli" - repo := "cli" - if len(args) > 0 { + var owner string + var repo string + + if len(args) == 0 { + baseRepo, err := determineBaseRepo(client, cmd, ctx) + if err != nil { + return err + } + + owner = baseRepo.RepoOwner() + repo = baseRepo.RepoName() + } else { parts := strings.SplitN(args[0], "/", 2) owner = parts[0] repo = parts[1] diff --git a/command/repo.go b/command/repo.go index ad208a277..4e8935ec8 100644 --- a/command/repo.go +++ b/command/repo.go @@ -38,6 +38,9 @@ func init() { repoCmd.AddCommand(repoViewCmd) repoViewCmd.Flags().BoolP("web", "w", false, "Open a repository in the browser") + + repoCmd.AddCommand(repoCreditsCmd) + repoCreditsCmd.Flags().BoolP("static", "s", false, "Print a static version of the credits") } var repoCmd = &cobra.Command{ @@ -89,6 +92,18 @@ With '--web', open the repository in a web browser instead.`, RunE: repoView, } +var repoCreditsCmd = &cobra.Command{ + Use: "credits [repository]", + Short: "View credits for a repository", + Example: `$ gh repo credits # view credits for the current repository +$ gh repo credits cool/repo # view credits for cool/repo +$ gh repo credits -s # print a non-animated thank you +$ gh repo credits | cat # pipe to just print the contributors, one per line +`, + Args: cobra.MaximumNArgs(1), + RunE: repoCredits, +} + func parseCloneArgs(extraArgs []string) (args []string, target string) { args = extraArgs @@ -587,3 +602,7 @@ func repoView(cmd *cobra.Command, args []string) error { return nil } + +func repoCredits(cmd *cobra.Command, args []string) error { + return credits(cmd, args) +}