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}