diff --git a/src/contributes/commandsBase.ts b/src/contributes/commandsBase.ts index 866e1aa..cd119d7 100644 --- a/src/contributes/commandsBase.ts +++ b/src/contributes/commandsBase.ts @@ -1,42 +1,48 @@ // src/contributes/commandsBase.ts import { runCommand } from "../util/commonUtil"; +import { logger } from "../util/logger"; export function checkDevChatDependency(): boolean { - try { - const binPath = getPipxEnvironmentPath(); + try { + const binPath = getPipxEnvironmentPath(); - if (binPath) { - updateEnvironmentPath(binPath); + if (binPath) { + updateEnvironmentPath(binPath); - // Check if DevChat is installed - runCommand('devchat --help'); - return true; - } else { - return false; - } - } catch (error) { - // DevChat dependency check failed - return false; - } + // Check if DevChat is installed + runCommand('devchat --help'); + return true; + } else { + logger.channel()?.error(`Failed to get pipx environment path, I will try to install pipx.`); + logger.channel()?.show(); + return false; + } + } catch (error) { + // DevChat dependency check failed + // log out detail error message + logger.channel()?.error(`Failed to check DevChat dependency: ${error}`); + logger.channel()?.show(); + return false; + } } export function getPipxEnvironmentPath(): string | null { - // Get pipx environment - const pipxEnvOutput = runCommand('python3 -m pipx environment').toString(); - const binPathRegex = /PIPX_BIN_DIR=\s*(.*)/; + // Get pipx environment + const pipxEnvOutput = runCommand('python3 -m pipx environment').toString(); + const binPathRegex = /PIPX_BIN_DIR=\s*(.*)/; - // Get BIN path from pipx environment - const match = pipxEnvOutput.match(binPathRegex); - if (match && match[1]) { - return match[1]; - } else { - return null; - } + // Get BIN path from pipx environment + const match = pipxEnvOutput.match(binPathRegex); + if (match && match[1]) { + return match[1]; + } else { + return null; + } } function updateEnvironmentPath(binPath: string): void { - // Add BIN path to PATH - process.env.PATH = `${binPath}:${process.env.PATH}`; + // Add BIN path to PATH + process.env.PATH = `${binPath}:${process.env.PATH}`; } \ No newline at end of file diff --git a/src/panel/statusBarViewBase.ts b/src/panel/statusBarViewBase.ts index 1b1493d..b38d382 100644 --- a/src/panel/statusBarViewBase.ts +++ b/src/panel/statusBarViewBase.ts @@ -62,7 +62,7 @@ export async function dependencyCheck(): Promise<[string, string]> { } if (devchatStatus === 'not ready') { // auto install devchat - UiUtilWrapper.runTerminal('DevChat Install', `python ${UiUtilWrapper.extensionPath() + "/tools/install.py"}`); + UiUtilWrapper.runTerminal('DevChat Install', `python3 ${UiUtilWrapper.extensionPath() + "/tools/install.py"}`); devchatStatus = 'waiting install devchat'; isVersionChangeCompare = true; }