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, err := cfg.Backend.IsPrivate(rn)
26				if err != nil {
27					return err
28				}
29
30				cmd.Println(isPrivate)
31			case 2:
32				isPrivate, err := strconv.ParseBool(args[1])
33				if err != nil {
34					return err
35				}
36				if err := checkIfCollab(cmd, args); err != nil {
37					return err
38				}
39				if err := cfg.Backend.SetPrivate(rn, isPrivate); err != nil {
40					return err
41				}
42			}
43			return nil
44		},
45	}
46
47	return cmd
48}