// Copyright 2017 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

//go:build !plan9
// +build !plan9

package main

import (
	"bytes"
	"context"
	exec "golang.org/x/sys/execabs"
	"runtime"
	"strings"
)

// arch contains either amd64 or 386.
var arch = func() string {
	cmd := exec.Command("uname", "-m") // "x86_64"
	if runtime.GOOS == "windows" {
		cmd = exec.Command("powershell", "-command", "(Get-WmiObject -Class Win32_ComputerSystem).SystemType") // "x64-based PC"
	}

	out, err := cmd.Output()
	if err != nil {
		// a sensible default?
		return "amd64"
	}
	if bytes.Contains(out, []byte("64")) {
		return "amd64"
	}
	return "386"
}()

func findGo(ctx context.Context, cmd string) (string, error) {
	out, err := exec.CommandContext(ctx, cmd, "go").CombinedOutput()
	return strings.TrimSpace(string(out)), err
}
