如何在VS Code Extension命令中执行Shell脚本?

时间:2019-05-22 01:10:29

标签: javascript typescript visual-studio-code vscode-extensions

我正在尝试制作VS Code扩展,旨在帮助人们对我和我正在开发的教育机器人进行编程。我想做一个小命令,将程序员的当前目录scp指向机器人的ip,然后运行它,以便机器人可以快速启动并运行。我或多或少知道正确的shell脚本来实现它。输入我为扩展名创建的正确命令后,该怎么办?如何在JavaScript / TypeScript中或通过VS Code Extension API运行该Shell脚本?

我尝试了child_process方法,从我所看到的结果来看,当我想输出某些内容时,它对于ls之类的东西来说效果很好。当我使用有效的scp命令尝试该命令时,它引发了错误并且无法正常工作。输出出现在调试控制台中,这对于该扩展名的用户来说是无用的,但它表明child_process确实确实可以按某些命令的预期工作。

如果无法使用Shell脚本完成此操作,则有一个名为scp2的模块,其功能与scp相同,但适用于node.js应用程序。我在registerCommand函数中尝试过,但无济于事。引发错误,这次是Running the contributed command: 'extension.upload failed'。这是代码:

let upload = vscode.commands.registerCommand('extension.upload', () => {
        vscode.window.showInformationMessage('Uploading...');
        var client = require('scp2');
        client.scp('file.txt', {
            host: '...',
            username: '...',
            password: '...', // not the real host, username, or password
            path: '/~/code/'
        }, function(err: any) {
            if(err) {
                console.log('Error');
                console.log(err);
            }
            else {
                console.log('Success');
            }
        });
    });

我将继续研究这个问题。同时,如果有人看到我看不到的内容,将不胜感激。

0 个答案:

没有答案