OSDN Git Service

Merge branch 'master' of git.osdn.net:/gitroot/eos/zephyr
[eos/zephyr.git] / server / api / v1 / execution / index.js
1 'use strict';
2
3 var express    = require('express');
4 var fs = require('fs')
5 var router     = express.Router()
6 var path       = require('path')
7 var formidable = require('formidable')
8 var db = require(__dirname + '/../../../../server/class/DB').instance;
9 var eos = require(__dirname + '/../../../../server/class/Eos').instance;
10 var ws = require(__dirname + '/../../../../server/class/WebSocket').instance;
11
12 router.post('/', function(req, res) {
13
14     ws.emit();
15
16     var form = new formidable.IncomingForm();
17     var root;
18     var result;
19
20     var command;
21     var options;
22     var workspace;
23
24     var optionsArray;
25
26     if(process.env.NODE_ENV === 'debug') {
27         root = __dirname + '/../../../../user-specific-files/workspace.debug/';
28     } else {
29         root = __dirname + '/../../../../user-specific-files/workspace/';
30     }
31
32     form.parse(req, function(err, fields, files) {
33         var data = JSON.parse(fields.data);
34         command = data.command;
35         options = data.options;
36         workspace = data.workspace;
37     });
38
39     form.on('end', function() {
40         Promise.all([eos.validate(command, options, workspace), eos.toExecArray(command, options, workspace)])
41         .catch(function(r) {
42             var info = {
43                 status: 'error',
44                 message: r.message
45             };
46             console.log(r.message);
47             res.send(info);
48         })
49         .then(function(r) {
50             var optionsArray = r[1];
51             return eos.execute(command, optionsArray);
52         })
53         .then(function(r) {
54             var info = {
55                 status: 'success',
56             };
57
58             console.log('start readdir');
59             fs.readdir(root, function(err, list) {
60                 console.log('in readdir');
61                 if(err) {
62                   console.log('in err');
63                   console.error(err);
64                   process.exit(1);
65                 } else {
66                   console.log(list.length.tostring);
67 <<<<<<< HEAD
68
69                   for (var i = 0; i< list.length; i++) {
70                     //db.existFile(list[i])
71                     //if(db.existFileId(list[i])) {
72                     //  console.log('execute exist:'+list[i]);
73                     if('A'<=list[i][0] && list[i][0]<='z' ) {
74                       db.createFile(list[i], '/');
75                     }
76                   }
77
78 =======
79                   for (var i = 0; i< list.length; i++) {
80                     console.log(list[i]);
81                     db.createFile(list[i], '/');
82                   }
83 >>>>>>> 6b2b2b88511733893d2c6e7848c389abfcd53ba6
84                 }
85             });
86
87             console.log('end readdir');
88 <<<<<<< HEAD
89             //db.createFile('test.out','/');
90 =======
91             db.createFile('test.out','/');
92 >>>>>>> 6b2b2b88511733893d2c6e7848c389abfcd53ba6
93             //var id = db.getDirectory('/');
94             //console.log(db.getDirectoryId('/').tostring);
95             /*
96             for( var name in db.getFiles(id)) {
97               consoiel.log(name);
98               if(db.notExistFile(name, '/')) {
99                   console.log(name);
100                   db.createFile(name, '/');
101               }
102             }
103             */
104
105             res.send(r);
106         });
107     });
108 });
109
110 module.exports = router;