in tools/util/build_gcsfuse.go [28:88]
func BuildGcsfuse(dstDir string) (err error) {
// Ensure we have a copy of build_gcsfuse sitting around.
var toolPath string
{
var toolDir string
toolDir, err = os.MkdirTemp("", "gcsfuse_integration_tests")
if err != nil {
err = fmt.Errorf("TempDir: %w", err)
return
}
defer os.RemoveAll(toolDir)
toolPath = path.Join(toolDir, "build_gcsfuse")
log.Printf("Building build_gcsfuse at %s", toolPath)
err = buildBuildGcsfuse(toolPath)
if err != nil {
err = fmt.Errorf("buildBuildGcsfuse: %w", err)
return
}
}
// Figure out where we can find the source code for gcsfuse.
var srcDir string
{
var pkg *build.Package
pkg, err = build.Import(
"github.com/googlecloudplatform/gcsfuse/v2",
"",
build.FindOnly)
if err != nil {
err = fmt.Errorf("build.Import: %w", err)
return
}
srcDir = pkg.Dir
}
// Use build_gcsfuse to perform a build.
log.Printf("Building gcsfuse into %s", dstDir)
{
cmd := exec.Command(
toolPath,
srcDir,
dstDir,
"fake_version",
)
var output []byte
output, err = cmd.CombinedOutput()
if err != nil {
err = fmt.Errorf("build_gcsfuse: %w\nOutput:\n%s", err, output)
return
}
}
return
}