Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/dev/preview/previewctl/cmd/root.go
2500 views
1
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2
// Licensed under the GNU Affero General Public License (AGPL).
3
// See License.AGPL.txt in the project root for license information.
4
5
package cmd
6
7
import (
8
"github.com/sirupsen/logrus"
9
"github.com/spf13/cobra"
10
"github.com/spf13/viper"
11
)
12
13
var (
14
branch = ""
15
logLevel = ""
16
)
17
18
func NewRootCmd(logger *logrus.Logger) *cobra.Command {
19
cmd := &cobra.Command{
20
Use: "previewctl",
21
PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
22
lvl, err := logrus.ParseLevel(logLevel)
23
if err != nil {
24
return err
25
}
26
27
logger.SetLevel(lvl)
28
29
return nil
30
},
31
Short: "Your best friend when interacting with Preview Environments :)",
32
Long: `previewctl is your best friend when interacting with Preview Environments :)`,
33
}
34
35
viper.AutomaticEnv()
36
37
cmd.PersistentFlags().StringVar(&branch, "branch", "", "From which branch's preview previewctl should interact with. By default it will use the result of \"git rev-parse --abbrev-ref HEAD\"")
38
cmd.PersistentFlags().StringVar(&logLevel, "log-level", "info", "The logger's log level")
39
40
cmd.AddCommand(
41
newInstallContextCmd(logger),
42
newGetNameCmd(),
43
newListPreviewsCmd(logger),
44
newSSHPreviewCmd(logger),
45
newGetCmd(logger),
46
newHasAccessCmd(logger),
47
newReportNameCmd(),
48
newCreateCmd(logger),
49
newAdminCmd(logger),
50
)
51
52
return cmd
53
}
54
55