eap-cli
Version:
edgeros 脚手架
72 lines (61 loc) • 1.72 kB
JavaScript
var configJson = require('../config/edgeros.config.json');
let net = require('net');
let EventEmitter = require('events').EventEmitter;
let reqEvent = new EventEmitter();
let status = 0;
var socket;
function startProject() {
socket = net.createConnection({
host: configJson.telnet.host,
port: configJson.telnet.port
});
socket.on('connect', () => {
console.log('已连接');
});
reqEvent.on('success', (data) => {
console.log(data);
if (data === 1) {
// exec(`node /apps/workspace/${getThisDir()}/index.js\n`);
exec(`cd /apps\n`);
}
});
socket.on('data', (data) => {
const dataStr = Buffer.alloc(data.length, data, 'utf-8').toString();
console.log(dataStr);
if(dataStr.indexOf('login:') !== -1) {
socket.write(configJson.telnet.username + '\n', (err) => {
if(err){
console.log(err);
}
});
} else if(dataStr.indexOf('password:') !== -1) {
socket.write(configJson.telnet.password + '\n', (err) => {
if(err){
console.log(err);
}
status = 1;
});
}else if(dataStr.indexOf('SylixOS kernel version: 1.12.9 Code name: Tangram') !== -1) {
reqEvent.emit('success', status);
} else {
console.log(JSON.stringify(dataStr));
}
})
}
function exec(cmd) {
socket.write(cmd, (err) => {
if(err){
console.log(err);
} else {
console.log('部署成功!');
}
});
}
function getThisDir() {
const path = process.cwd();
return '/' + path.substring(path.lastIndexOf('\\')+1);
}
// startProject();
module.exports = {
startProject: startProject
}