Path: blob/main/components/supervisor/cmd/call-server.go
2498 views
// Copyright (c) 2020 Gitpod GmbH. All rights reserved.1// Licensed under the GNU Affero General Public License (AGPL).2// See License.AGPL.txt in the project root for license information.34package cmd56import (7"context"8"encoding/json"9"fmt"10"os"1112"github.com/spf13/cobra"1314"github.com/gitpod-io/gitpod/common-go/log"15gitpod "github.com/gitpod-io/gitpod/gitpod-protocol"16)1718var callServerCmd = &cobra.Command{19Use: "call-server <host> <token>",20Hidden: true,21Args: cobra.MinimumNArgs(2),22Run: func(cmd *cobra.Command, args []string) {23var (24ctx, cancel = context.WithCancel(context.Background())25host = args[0]26token = args[1]27)28defer cancel()2930api, err := gitpod.ConnectToServer(fmt.Sprintf("ws://%s/api/v1", host), gitpod.ConnectToServerOpts{31Token: token,32Log: log.Log,33})34if err != nil {35log.WithError(err).Fatal("ConnectToServer")36}37defer api.Close()3839usr, err := api.GetLoggedInUser(ctx)40if err != nil {41log.WithError(err).Fatal("GetLoggedInUser")42}4344err = json.NewEncoder(os.Stdout).Encode(usr)45if err != nil {46log.WithError(err).Error("encoding user")47}4849enc := json.NewEncoder(os.Stdout)50enc.SetEscapeHTML(false)51enc.SetIndent("", " ")5253workspaceID, _ := cmd.Flags().GetString("workspace-id")54updates, err := api.WorkspaceUpdates(ctx, workspaceID)55if err != nil {56log.WithError(err).Fatal("WorkspaceUpdates")57}58for u := range updates {59err := enc.Encode(u)60if err != nil {61log.WithError(err).Error("encoding update")62}63}64},65}6667func init() {68rootCmd.AddCommand(callServerCmd)6970callServerCmd.Flags().String("workspace-id", os.Getenv("GITPOD_WORKSPACE_ID"), "workspace ID to listen for")71}727374