1*9e965d6fSRomain Jobredeaux// Copyright 2023 The Bazel Authors. All rights reserved. 2*9e965d6fSRomain Jobredeaux// 3*9e965d6fSRomain Jobredeaux// Licensed under the Apache License, Version 2.0 (the "License"); 4*9e965d6fSRomain Jobredeaux// you may not use this file except in compliance with the License. 5*9e965d6fSRomain Jobredeaux// You may obtain a copy of the License at 6*9e965d6fSRomain Jobredeaux// 7*9e965d6fSRomain Jobredeaux// http://www.apache.org/licenses/LICENSE-2.0 8*9e965d6fSRomain Jobredeaux// 9*9e965d6fSRomain Jobredeaux// Unless required by applicable law or agreed to in writing, software 10*9e965d6fSRomain Jobredeaux// distributed under the License is distributed on an "AS IS" BASIS, 11*9e965d6fSRomain Jobredeaux// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*9e965d6fSRomain Jobredeaux// See the License for the specific language governing permissions and 13*9e965d6fSRomain Jobredeaux// limitations under the License. 14*9e965d6fSRomain Jobredeaux 15*9e965d6fSRomain Jobredeaux// Package runfilelocation provides utility functions to deal with runfiles 16*9e965d6fSRomain Jobredeaux 17*9e965d6fSRomain Jobredeauxpackage runfilelocation 18*9e965d6fSRomain Jobredeaux 19*9e965d6fSRomain Jobredeauximport ( 20*9e965d6fSRomain Jobredeaux "os" 21*9e965d6fSRomain Jobredeaux "path" 22*9e965d6fSRomain Jobredeaux 23*9e965d6fSRomain Jobredeaux "github.com/bazelbuild/rules_go/go/runfiles" 24*9e965d6fSRomain Jobredeaux) 25*9e965d6fSRomain Jobredeaux 26*9e965d6fSRomain Jobredeaux// Find determines the absolute path to a given runfile 27*9e965d6fSRomain Jobredeauxfunc Find(runfilePath string) (string, error) { 28*9e965d6fSRomain Jobredeaux runfileLocation, err := runfiles.Rlocation(path.Join(os.Getenv("TEST_WORKSPACE"), runfilePath)) 29*9e965d6fSRomain Jobredeaux 30*9e965d6fSRomain Jobredeaux if err != nil { 31*9e965d6fSRomain Jobredeaux return "", err 32*9e965d6fSRomain Jobredeaux } 33*9e965d6fSRomain Jobredeaux 34*9e965d6fSRomain Jobredeaux return runfileLocation, err 35*9e965d6fSRomain Jobredeaux} 36