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}