github.com/replit/upm@v0.0.0-20240423230255-9ce4fc3ea24c/internal/trace/test_cli/test_cli.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  	"os/exec"
     7  
     8  	"github.com/replit/upm/internal/trace"
     9  	"gopkg.in/DataDog/dd-trace-go.v1/ddtrace"
    10  	"gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
    11  )
    12  
    13  func main() {
    14  	tracer.Start(
    15  		tracer.WithService("upm_wrapper"),
    16  	)
    17  	defer tracer.Stop()
    18  
    19  	span := tracer.StartSpan("upm_wrapper")
    20  	defer span.Finish()
    21  	var traceID string
    22  	var spanID string
    23  	if w3Cctx, ok := span.Context().(ddtrace.SpanContextW3C); ok {
    24  		traceID = trace.GetHexTraceID(w3Cctx)
    25  		spanID = trace.GetHexSpanID(w3Cctx)
    26  	}
    27  
    28  	cmd := exec.Command("upm", "guess", "-a", "-f", "-l", "nodejs")
    29  	cmd.Env = os.Environ()
    30  	cmd.Env = append(cmd.Env, "UPM_TRACE=1")
    31  	cmd.Env = append(cmd.Env, "REPL_ID=ABCDE")
    32  	cmd.Env = append(cmd.Env, fmt.Sprintf("DD_TRACE_ID=%s", traceID))
    33  	cmd.Env = append(cmd.Env, fmt.Sprintf("DD_SPAN_ID=%s", spanID))
    34  
    35  	stdout, err := cmd.Output()
    36  
    37  	if err != nil {
    38  		fmt.Println(err.Error())
    39  		return
    40  	}
    41  
    42  	// Print the output
    43  	fmt.Println(string(stdout))
    44  }