30 lines
767 B
Go
30 lines
767 B
Go
//go:build darwin
|
|
|
|
package utils
|
|
|
|
import (
|
|
"syscall"
|
|
|
|
"github.com/go-errors/errors"
|
|
)
|
|
|
|
func getDenoAssetFileName() (string, error) {
|
|
// Simple runtime.GOARCH detection doesn't work if the CLI is
|
|
// running under Rosetta:
|
|
// https://github.com/supabase/cli/issues/1266. So as a workaround
|
|
// we use Apple Silicon detection:
|
|
// https://www.yellowduck.be/posts/detecting-apple-silicon-via-go.
|
|
_, err := syscall.Sysctl("sysctl.proc_translated")
|
|
if err != nil {
|
|
if err.Error() == "no such file or directory" {
|
|
// Running on Intel Mac.
|
|
return "deno-x86_64-apple-darwin.zip", nil
|
|
} else {
|
|
return "", errors.Errorf("failed to determine OS triple: %w", err)
|
|
}
|
|
} else {
|
|
// Running on Apple Silicon.
|
|
return "deno-aarch64-apple-darwin.zip", nil
|
|
}
|
|
}
|