void generateSnapshot(GoVer ver, File destJsonFile) throws IOException {
		Msg.info(this, "Generating golang api snapshot for " + ver);
		File newGoRoot = createVersionedGoRoot(ver);
		File newBinDir = new File(newGoRoot, "bin");
		File srcDir = new File(newGoRoot, "src");
		File logFile = new File(newGoRoot, "goapiparser.log");

		ProcessBuilder procBuilder = new ProcessBuilder("go-api-parser", // cmd, args follow 
			"-get_cgo", "-src=" + srcDir, "-out=" + destJsonFile, "-version=go" + ver.toString(),
			"-noret", noretFuncsFile.getPath()).directory(newGoRoot);
		Map<String, String> env = procBuilder.environment();
		env.put("GOROOT", newGoRoot.getPath());
		env.put("PATH", newBinDir.getPath());
		procBuilder.redirectErrorStream(true);
		procBuilder.redirectOutput(logFile);
		Process proc = procBuilder.start();
		try {
			Msg.info(GoApiSnapshotGeneratorTest.class, "Waiting for go-api-parser...");
			int exitResult = proc.waitFor();
			Msg.info(GoApiSnapshotGeneratorTest.class, "Finished: " + exitResult + ", " + logFile);
		}
		catch (InterruptedException e) {
			throw new IOException(e);
		}
		finally {
			String logText = FileUtilities.getText(logFile);
			Msg.info(GoApiSnapshotGeneratorTest.class, logText);

			Msg.info(GoApiSnapshotGeneratorTest.class, "Cleaning up tmp goroot " + newGoRoot);
			FileUtils.deleteDirectory(newGoRoot);
			Msg.info(GoApiSnapshotGeneratorTest.class, "Finished deleting goroot");
		}
	}
Generates an api snapshot of a specific golang version.
<p>
Note: this can take several minutes to complete.

@param ver go version (that must be present as a tag in the go git repo)
@param destJsonFile json file to create with results of the snapshot 
@throws IOException if failure
Ghidra/Features/Base/src/test/java/ghidra/app/util/bin/format/golang/rtti/GoApiSnapshotGeneratorTest.java