snips-sam
Version:
The Snips Assistant Manager
39 lines (33 loc) • 1.47 kB
text/typescript
import * as yargs from 'yargs';
import { cli } from '../cli';
import { SSHService } from '../session/ssh';
import fsExtra = require('fs-extra');
// export const command = 'deploy <snipsfile_path>';
// export const desc = 'Deploy a Snipsfile on your device';
export const handler = async (argv: yargs.Argv) => {
const snipsfilePath = argv['snipsfile_path'];
const ssh = new SSHService();
await ssh.connect().catch(e => cli.stream.error(e));
cli.stream.loading('Deploying your Snipsfile...');
const snipsfile = await fsExtra.readFile(snipsfilePath, 'utf8')
.catch((e) => {
cli.stream.print(`Snipsfile can't be found, reason: ${e.message}`);
process.exit();
});
if (snipsfile === undefined) {
cli.stream.print(`Snipsfile is empty`);
return process.exit();
}
await ssh.copySnipsFile(snipsfile)
.catch((e) => {
cli.stream.error(`Couldn't copy Snipsfile: ` + e.message);
cli.stream.hint(`You can create it manually on your device from this url : https://github.com/snipsco/samples/raw/master/snipsfiles/Snipsfile.weather')`);
ssh.disconnect();
process.exit();
});
cli.stream.done();
cli.stream.loading('Loading sample assistant...');
await ssh.runSnipsmanagerInstall((output) => { cli.stream.printNoLN(output); });
await ssh.runSnipsManager((output) => { cli.stream.printNoLN(output); });
cli.stream.done();
};