diff --git a/bin/checkEnv.js b/bin/checkEnv.js new file mode 100644 index 0000000..ab75c06 --- /dev/null +++ b/bin/checkEnv.js @@ -0,0 +1,36 @@ +const { spawnSync } = require("child_process"); + +function run(cmd, args = [], opts = {}) { + return spawnSync(cmd, args, { + stdio: opts.stdio || "pipe", + shell: true + }); +} + +function checkCommand(cmd, args = ["--version"]) { + const result = run(cmd, args); + return result.status === 0; +} + +function detectPython() { + const candidates = ["python3", "python", "py"]; + for (let c of candidates) { + if (checkCommand(c)) return c; + } + return null; +} + +function detectPip() { + const candidates = ["pip3", "pip", "py -m pip"]; + for (let c of candidates) { + if (checkCommand(c.split(" ")[0])) return c; + } + return null; +} + +function isSuperClaudeInstalled(pipCmd) { + const result = run(pipCmd, ["show", "SuperClaude"]); + return result.status === 0; +} + +module.exports = { run, detectPython, detectPip, isSuperClaudeInstalled };