1package cmd
2
3import (
4 "strings"
5
6 "github.com/spf13/cobra"
7)
8
9func descriptionCommand() *cobra.Command {
10 cmd := &cobra.Command{
11 Use: "description REPOSITORY [DESCRIPTION]",
12 Aliases: []string{"desc"},
13 Short: "Set or get the description for a repository",
14 Args: cobra.MinimumNArgs(1),
15 RunE: func(cmd *cobra.Command, args []string) error {
16 ctx := cmd.Context()
17 be, _ := fromContext(cmd)
18 rn := strings.TrimSuffix(args[0], ".git")
19 switch len(args) {
20 case 1:
21 if err := checkIfReadable(cmd, args); err != nil {
22 return err
23 }
24
25 desc, err := be.Description(ctx, rn)
26 if err != nil {
27 return err
28 }
29
30 cmd.Println(desc)
31 default:
32 if err := checkIfCollab(cmd, args); err != nil {
33 return err
34 }
35 if err := be.SetDescription(ctx, rn, strings.Join(args[1:], " ")); err != nil {
36 return err
37 }
38 }
39
40 return nil
41 },
42 }
43
44 return cmd
45}