supabase-cli/internal/utils/deno_darwin.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
}
}