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 := cfg.Backend.Description(rn)
25 cmd.Println(desc)
26 default:
27 if err := checkIfCollab(cmd, args); err != nil {
28 return err
29 }
30 if err := cfg.Backend.SetDescription(rn, strings.Join(args[1:], " ")); err != nil {
31 return err
32 }
33 }
34
35 return nil
36 },
37 }
38
39 return cmd
40}