6 var fs = require('fs');
7 var path = require('path');
8 var exec = require('child_process').exec;
9 var util = require('util');
10 var JL = require('jsnlog').JL;
11 var SocketEvent = require('./socketEvent');
13 var logger = JL('mic.js');
18 Mic.isAvailable = function () {
22 Mic.kill = function () {
30 Mic.process = function (command, callback) {
32 ps.stdout.on('data', callback.stdout || function (out) {
33 process.stdout.write(out);
35 ps.stderr.on('data', callback.stderr || function (err) {
36 process.stdout.write(err);
38 ps.on('error', callback.error);
39 ps.on('exit', callback.exit);
42 Mic.create = function (paramObj, io) {
43 logger.info('MIC Create');
45 var micCommand = 'sudo mic cr auto ' + paramObj.pathKsFile + util.format(' -A %s', 'x86_64') + util.format(' -o %s', paramObj.pathOutput);
47 function sendMsg(path, msg) {
48 io.sockets.emit(path, msg);
51 Mic.process(micCommand, {
52 stdout: function (out) {
54 sendMsg(SocketEvent.FS_IMAGE_ADD_TO, out);
56 stderr: function (out) {
58 sendMsg(SocketEvent.FS_IMAGE_ADD_TO, out);
60 error: function (out) {
62 sendMsg(SocketEvent.FS_IMAGE_ADD_TO, out);
64 exit: function (code) {
66 logger.error('Terminated (' + code + ')');
67 sendMsg(SocketEvent.FS_IMAGE_ADD_FINISH, 'Terminated (' + code + ')');