1package cmd
 2
 3import (
 4	"strings"
 5
 6	"github.com/spf13/cobra"
 7)
 8
 9func projectName() *cobra.Command {
10	cmd := &cobra.Command{
11		Use:     "project-name REPOSITORY [NAME]",
12		Aliases: []string{"project"},
13		Short:   "Set or get the project name 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				pn := cfg.Backend.ProjectName(rn)
25				cmd.Println(pn)
26			default:
27				if err := checkIfCollab(cmd, args); err != nil {
28					return err
29				}
30				if err := cfg.Backend.SetProjectName(rn, strings.Join(args[1:], " ")); err != nil {
31					return err
32				}
33			}
34
35			return nil
36		},
37	}
38
39	return cmd
40}