1package cmd23import (4 "strings"56 "github.com/charmbracelet/soft-serve/pkg/backend"7 "github.com/spf13/cobra"8)910func projectName() *cobra.Command {11 cmd := &cobra.Command{12 Use: "project-name REPOSITORY [NAME]",13 Aliases: []string{"project"},14 Short: "Set or get the project name for a repository",15 Args: cobra.MinimumNArgs(1),16 PersistentPreRunE: checkIfReadable,17 RunE: func(cmd *cobra.Command, args []string) error {18 ctx := cmd.Context()19 be := backend.FromContext(ctx)20 rn := strings.TrimSuffix(args[0], ".git")21 switch len(args) {22 case 1:23 pn, err := be.ProjectName(ctx, rn)24 if err != nil {25 return err26 }2728 cmd.Println(pn)29 default:30 if err := checkIfCollab(cmd, args); err != nil {31 return err32 }33 if err := be.SetProjectName(ctx, rn, strings.Join(args[1:], " ")); err != nil {34 return err35 }36 }3738 return nil39 },40 }4142 return cmd43}