Path: blob/main/components/ee/agent-smith/cmd/testbed/main.go
2501 views
// Copyright (c) 2022 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 main56import (7"fmt"8"log"9"os"10"os/exec"11"strings"12)1314// runCmd represents the run command15func run(args []string) error {16if len(args) > 0 && args[0] == "ring1" {17self, err := os.Executable()18if err != nil {19return err20}21err = os.Symlink(self, "supervisor")22if err != nil && !os.IsExist(err) {23return err24}2526cmd := exec.Command("supervisor", "run")27cmd.Stdout = os.Stdout28cmd.Stdin = os.Stdin29cmd.Stderr = os.Stderr30err = cmd.Run()31if err != nil {32return err33}3435return nil36}3738if len(args) > 0 && args[0] == "run" {39var err error40cmd := exec.Command("bash")41cmd.Stdout = os.Stdout42cmd.Stdin = os.Stdin43cmd.Stderr = os.Stderr44err = cmd.Run()45if err != nil {46return err47}48return nil49}5051if len(args) > 0 && args[0] == "start" {52cwd, err := os.Getwd()53if err != nil {54return err55}56env := os.Environ()57for i, e := range env {58if strings.HasPrefix(e, "PATH=") {59env[i] += e + ":" + cwd60}61}62env = append(env, "GITPOD_OWNER_ID=owner-id")63env = append(env, "GITPOD_WORKSPACE_ID=workspace-id")64env = append(env, "GITPOD_INSTANCE_ID=instance-id")65env = append(env, "GITPOD_WORKSPACE_CONTEXT_URL=https://github.com/gitpod-io/gitpod")6667cmd := exec.Command("/proc/self/exe", "ring1")68cmd.Stdout = os.Stdout69cmd.Stdin = os.Stdin70cmd.Stderr = os.Stderr71cmd.Env = env72err = cmd.Run()73if err != nil {74return err75}76}7778fmt.Println("run with \"testbed start\"")7980return nil81}8283func main() {84err := run(os.Args[1:])85if err != nil {86log.Fatal(err)87}88}899091