1package cmd
 2
 3import (
 4	"strconv"
 5	"strings"
 6
 7	"github.com/spf13/cobra"
 8)
 9
10func privateCommand() *cobra.Command {
11	cmd := &cobra.Command{
12		Use:   "private REPOSITORY [true|false]",
13		Short: "Set or get a repository private property",
14		Args:  cobra.RangeArgs(1, 2),
15		RunE: func(cmd *cobra.Command, args []string) error {
16			cfg, _ := fromContext(cmd)
17			rn := strings.TrimSuffix(args[0], ".git")
18
19			switch len(args) {
20			case 1:
21				if err := checkIfReadable(cmd, args); err != nil {
22					return err
23				}
24
25				isPrivate := cfg.Backend.IsPrivate(rn)
26				cmd.Println(isPrivate)
27			case 2:
28				isPrivate, err := strconv.ParseBool(args[1])
29				if err != nil {
30					return err
31				}
32				if err := checkIfCollab(cmd, args); err != nil {
33					return err
34				}
35				if err := cfg.Backend.SetPrivate(rn, isPrivate); err != nil {
36					return err
37				}
38			}
39			return nil
40		},
41	}
42
43	return cmd
44}