UNPKG

snips-sam

Version:

The Snips Assistant Manager

39 lines (33 loc) 1.47 kB
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(); };