diff --git a/gnovm/cmd/gno/util.go b/gnovm/cmd/gno/util.go index 1bbdb968c45..7c06449549b 100644 --- a/gnovm/cmd/gno/util.go +++ b/gnovm/cmd/gno/util.go @@ -105,10 +105,16 @@ func fmtDuration(d time.Duration) string { } func guessRootDir() string { + // try to get the root directory from the GNO_ROOT_DIR environment variable. + if rootdir := os.Getenv("GNO_ROOT_DIR"); rootdir != "" { + return filepath.Clean(rootdir) + } + + // if GNO_ROOT_DIR is not set, try to guess the root directory using the `go list` command. cmd := exec.Command("go", "list", "-m", "-mod=mod", "-f", "{{.Dir}}", "github.com/gnolang/gno") out, err := cmd.CombinedOutput() if err != nil { - log.Fatal("can't guess --root-dir, please fill it manually.") + log.Fatal("can't guess --root-dir, please fill it manually or define the GNO_ROOT_DIR environment variable globally.") } rootDir := strings.TrimSpace(string(out)) return rootDir