import os, osproc, json when defined(windows): const premixExecutable = "premix.exe" browserLauncher = "cmd /c start" elif defined(macos): const premixExecutable = "premix" browserLauncher = "open" else: const premixExecutable = "premix" browserLauncher = "xdg-open" proc getFileDir*(file: string): string = var searchDirs = [ "." , "." / "build" , "." / "premix" ] for dir in searchDirs: if fileExists(dir / file): return dir result = "" proc getFilePath(file: string): string = let dir = getFileDir(file) if dir.len > 0: return dir / file else: return "" proc launchPremix*(fileName: string, metaData: JsonNode) = let premixExe = getFilePath(premixExecutable) writeFile(fileName, metaData.pretty) if premixExe.len > 0: if execCmd(premixExe & " " & fileName) == 0: if execCmd(browserLauncher & " " & getFilePath("index.html")) != 0: echo "failed to launch default browser" else: echo "failed to execute the premix debugging tool"