1package cmd23import (4 "strconv"5 "strings"67 "github.com/charmbracelet/soft-serve/pkg/backend"8 "github.com/spf13/cobra"9)1011func privateCommand() *cobra.Command {12 cmd := &cobra.Command{13 Use: "private REPOSITORY [true|false]",14 Short: "Set or get a repository private property",15 Args: cobra.RangeArgs(1, 2),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")2122 switch len(args) {23 case 1:24 isPrivate, err := be.IsPrivate(ctx, rn)25 if err != nil {26 return err27 }2829 cmd.Println(isPrivate)30 case 2:31 isPrivate, err := strconv.ParseBool(args[1])32 if err != nil {33 return err34 }35 if err := checkIfCollab(cmd, args); err != nil {36 return err37 }38 if err := be.SetPrivate(ctx, rn, isPrivate); err != nil {39 return err40 }41 }42 return nil43 },44 }4546 return cmd47}