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			cfg, _ := fromContext(cmd)
17			rn := strings.TrimSuffix(args[0], ".git")
18			switch len(args) {
19			case 1:
20				if err := checkIfReadable(cmd, args); err != nil {
21					return err
22				}
23
24				desc, err := cfg.Backend.Description(rn)
25				if err != nil {
26					return err
27				}
28
29				cmd.Println(desc)
30			default:
31				if err := checkIfCollab(cmd, args); err != nil {
32					return err
33				}
34				if err := cfg.Backend.SetDescription(rn, strings.Join(args[1:], " ")); err != nil {
35					return err
36				}
37			}
38
39			return nil
40		},
41	}
42
43	return cmd
44}