treewide: replace hardcoded runfiles paths

We hardcoded some of the runfiles paths to find specific files. This replaces the hardcoded paths by a call to rlocationpath. This prevents running a target without the correct dependencies at build time instead of at runtime

Change-Id: I7ce56935ac80be6b28b824ccb0781ab401bd6521
Reviewed-on: https://review.monogon.dev/c/monogon/+/3301
Reviewed-by: Serge Bazanski <serge@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/test/launch/metroctl.go b/metropolis/test/launch/metroctl.go
index e3196a6..711855b 100644
--- a/metropolis/test/launch/metroctl.go
+++ b/metropolis/test/launch/metroctl.go
@@ -9,25 +9,11 @@
 	"path"
 	"sort"
 
-	"github.com/bazelbuild/rules_go/go/runfiles"
 	"github.com/kballard/go-shellquote"
 
 	metroctl "source.monogon.dev/metropolis/cli/metroctl/core"
 )
 
-const metroctlRunfile = "_main/metropolis/cli/metroctl/metroctl_/metroctl"
-
-// MetroctlRunfilePath returns the absolute path to the metroctl binary available
-// if the built target depends on //metropolis/cli/metroctl. Otherwise, an error
-// is returned.
-func MetroctlRunfilePath() (string, error) {
-	path, err := runfiles.Rlocation(metroctlRunfile)
-	if err != nil {
-		return "", fmt.Errorf("//metropolis/cli/metroctl not found in runfiles, did you include it as a data dependency? error: %w", err)
-	}
-	return path, nil
-}
-
 type acceptall struct{}
 
 func (a *acceptall) Ask(ctx context.Context, _ *metroctl.ConnectOptions, _ *x509.Certificate) (bool, error) {
@@ -63,10 +49,6 @@
 // dependency of the built target) with all the required flags to connect to the
 // launched cluster.
 func (c *Cluster) MakeMetroctlWrapper() (string, error) {
-	mpath, err := MetroctlRunfilePath()
-	if err != nil {
-		return "", err
-	}
 	wpath := path.Join(c.metroctlDir, "metroctl.sh")
 
 	// Don't create wrapper if it already exists.
@@ -74,7 +56,7 @@
 		return wpath, nil
 	}
 
-	wrapper := fmt.Sprintf("#!/usr/bin/env bash\nexec %s %s \"$@\"", mpath, c.MetroctlFlags())
+	wrapper := fmt.Sprintf("#!/usr/bin/env bash\nexec %s %s \"$@\"", xMetroctlPath, c.MetroctlFlags())
 	if err := os.WriteFile(wpath, []byte(wrapper), 0555); err != nil {
 		return "", fmt.Errorf("could not write wrapper: %w", err)
 	}