gpt4 book ai didi

javascript - 如何编写一个 JavaScript 条件来报告 git 命令在终端中是成功还是失败?

转载 作者:行者123 更新时间:2023-11-30 19:25:58 25 4
gpt4 key购买 nike

我是初学者

我正在尝试创建一个 VS Code 扩展,它将为我执行 4 个 git 命令( checkout 、拉取、合并和推送)。我的问题出在我的情况下......如果其中一个 git 命令在终端中失败,我希望扩展程序停止,所以我试图创建一个 if/else JavaScript 条件来判断 git 命令在终端中是成功还是失败因此,如果 git 命令失败,扩展将停止,否则将继续。

我在 Google 上到处查看,但没有找到任何对我有帮助的东西。在我的代码中,我现在写了一个条件,即 terminal.error() == true,即使我知道这个命令没有任何意义。有人可以帮助我,或者如果您知道其他方法,请告诉我。

context.subscriptions.push(vscode.commands.registerCommand('terminalTest.TS', () => {
const terminal = vscode.window.createTerminal(`TS Terminal #${NEXT_TERM_ID++}`);
vscode.window.showInformationMessage('Terminal is now open');

terminal.sendText("git checkout master");
if (terminal.error() == true) {
vscode.window.showInformationMessage('Failed to checkout');
}
else {
terminal.sendText('git pull');

最佳答案

您可能想要查看该 git checkout master shell 命令的响应代码。在 VS Code 终端 API 中,我找不到这样做的方法(尽管我不确定这是不可能的)。

因此,据我通过搜索得知,在 VSCode 扩展中,您可以访问 Node.js 库。这意味着您可以使用 child_process 库执行命令。该库可以根据需要使用命令的响应代码。

const child_process = require("child_process")
child_process.exec("git checkout master", (error, stdout, stderr) => {
if (error == 0) {
// Sucess, now onto 'git pull'
} else {
// Failure, abort
}
});

希望您的项目可以使用不同的库。

请注意,如果您想了解有关 git checkout master 失败原因的更多信息,该命令对不同的事情使用不同的响应代码(例如,128 表示没有 git repo) ,或者您可以查看 stdout/stderr

关于javascript - 如何编写一个 JavaScript 条件来报告 git 命令在终端中是成功还是失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56908186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com