inputPath = path.normalize('workspace/'+params.inputDir),
outputPath = path.normalize('workspace/'+params.outputDir),
options = params.options
- dddddd
var execLine = '/Users/hiratakengo/Eos/bin/X86MAC64/'+command
console.log(execLine)
if(options) {
'use strict';
var express = require('express');
+var fs = require('fs')
var router = express.Router()
var path = require('path')
var formidable = require('formidable')
ws.emit();
var form = new formidable.IncomingForm();
- var root;
+ var root;
var result;
var command;
.then(function(r) {
var optionsArray = r[1];
return eos.execute(command, optionsArray);
- }).then(function(r) {
+ })
+ .then(function(r) {
var info = {
status: 'success',
};
+
+ console.log('start readdir');
+ fs.readdir(root, function(err, list) {
+ console.log('in readdir');
+ if(err) {
+ console.log('in err');
+ console.error(err);
+ process.exit(1);
+ } else {
+ console.log(list.length.tostring);
+ for (var i = 0; i< list.length; i++) {
+ console.log(list[i]);
+ db.createFile(list[i], '/');
+ }
+ }
+ });
+
+ console.log('end readdir');
+ db.createFile('test.out','/');
+ //var id = db.getDirectory('/');
+ //console.log(db.getDirectoryId('/').tostring);
+ /*
+ for( var name in db.getFiles(id)) {
+ consoiel.log(name);
+ if(db.notExistFile(name, '/')) {
+ console.log(name);
+ db.createFile(name, '/');
+ }
+ }
+ */
+
res.send(r);
});
});
// DBのコンストラクタを実行
var DB = require('./class/DB').instance;
DB.init()
+/*
.then(function() {
return DB.test2();
-})
+})*/
.then(function() {
if(process.env.NODE_ENV === 'debug') {
return DB.testRest();
* @returns {promise}
*/
-/**
+/**
* productionモード時は、db.workspaceを永続化させる
* DEBUGモードの時は、db.debugを実行毎に作成する。
* DEBUGモードの時は、sync()の中で、/レコードがFilesテーブルに追加される。
/**
* getDirectoryParentId
- * ディレクトリのparentIdを取得する
+ * ディレクトリのparentIdを取得する
* @param name
* @returns {promise} ディレクトリが存在すればresolve(uuid), しなければreject
*/
/**
* getDirectoryId
- * ディレクトリのfileIdを取得する
+ * ディレクトリのfileIdを取得する
* @param name
* @returns {promise} ディレクトリが存在すればresolve(uuid), しなければreject
*/
/**
* getDirectory
- * ディレクトリのfileIdを取得する
+ * ディレクトリのfileIdを取得する
* @param name
* @returns {promise} ディレクトリが存在すればresolve(name), しなければreject
*/
/**
* getFiles
- * ディレクトリのfileId一覧を取得する
- * @param {string} fileId ディレクトリのfileId
+ * ディレクトリのfileId一覧を取得する
+ * @param {string} fileId ディレクトリのfileId
* @returns {promise} resolve([Array]<string>fileId) 引数で与えられたディレクトリを直接の親に持つファイルのレコードの配列を返す。
* 与えられたfileIdがディレクトリでなければresolve
*/
/**
* getDirectories
- * ディレクトリの一覧を取得する
- * @returns {promise} resolve([Array]<Object>)
+ * ディレクトリの一覧を取得する
+ * @returns {promise} resolve([Array]<Object>)
*/
function getDirectories() {
return new Promise(function(resolve, reject) {
};
Files.findAll(q)
.then(function(r) {
- var dirs = r.map(function(data) {
- return data.dataValues;
+ var dirs = r.map(function(data) {
+ return data.dataValues;
});
resolve(dirs);
});
reject(new Error('parameter "directory" is undefined'));
}
- var arrayDirectory;
+ var arrayDirectory;
var root = directory.substr(0,1);
if(root !== '/') {
return new Promise(function(resolve, reject) {
if(!directory) {
resolve();
- }
+ }
- var arrayDirectory;
+ var arrayDirectory;
var root = directory.substr(0,1);
if(root !== '/') {
/**
* createFile
*
- * @param fileName
+ * @param fileName
* @param parentDirectory
* @returns {promise}<sequelize.createの結果を格納したobject | Error>
*/
fileId: uuid.v1(),
name: fileName,
parentId: parentId,
- fileType: 1
+ fileType: 1
}
+ //fs.linkSync(q.filename, q.fileID);
return Files.create(q)
})
.then(function(r) {
fileId: uuid.v1(),
name: leaf,
parentId: parentId,
- fileType: 0
+ fileType: 0
}
return Files.create(q)
})
fileId: uuid.v1(),
name: leaf,
parentId: parentId,
- fileType: 0
+ fileType: 0
}
return Files.create(q)
})
fileId: uuid.v1(),
name: 'hoge.txt',
parentId: '1f83f620-c1ed-11e5-9657-7942989daa00', // rootのuuid
- fileType: 1
+ fileType: 1
};
return Files.create(q);
}
fileId: '1f83f620-c1ed-11e5-9657-7942989daa01',
name: 'two',
parentId: q1.fileId,
- fileType: 0
+ fileType: 0
};
return Files.create(q2);
fileId: '1f83f620-c1ed-11e5-9657-7942989daa02',
name: 'two',
parentId: '1f83f620-c1ed-11e5-9657-7942989daa00', //rootのuuid
- fileType: 0
+ fileType: 0
};
return Files.create(q3);
})
-/** * * Class variables */
-// include all Eos command's info.
-// For seaching with O(n), the object key name is command name.
-var db = require('./DB.js').instance;
+/** * * Class variables */
+// include all Eos command's info.
+// For seaching with O(n), the object key name is command name.
+var db = require('./DB.js').instance;
var commandList = require(__dirname + '/../../user-specific-files/OptionControlFile/command_list.json');
var ocfReference = {};
return new Promise(function(resolve, reject) {
var ok = {};
var notIncludingRequiredOptions = [];
- options.forEach(function(o) {
+ options.forEach(function(o) {
ok[o.name] = o.arguments;
});
ocf.forEach(function(o) {
}
});
- // check whether all required option exist
+ // check whether all required option exist
if(notIncludingRequiredOptions.length > 0) {
var errorMsg = 'Option ' + notIncludingRequiredOptions.toString() + ' are required';
reject(new Error(errorMsg));
}
/**
- * validate
+ * validate
* コマンドとオプションのバリデーション
* @param command
* @param params
/**
* toExecArray
*
- * @param {fileId}
+ * @param {fileId}
* @returns {string}
*/
function toExecArray(command, options, workspaceId) {
var outRegExp = /out|append/;
o.arguments.forEach(function(arg, i) {
if(ocfObj[o.name].arg[i].formType === 'select') {
- s.push(uuids[arg]);
+ //s.push(uuids[arg]);
+ s.push(arg);
} else {
s.push(arg);
}
*/
function execute(command, optionsArray) {
return new Promise(function(resolve, reject) {
- var workspace;
+ var workspace;
if(process.env.NODE_ENV === 'debug') {
workspace = __dirname + '/../../user-specific-files/workspace.debug';
} else {
workspace = _dirname + '/../../user-specific-files/workspace';
}
-
+
var config = {
cwd: workspace
};
/**
* getUUID
- * @param fileId
+ * @param fileId
* @returns {object} key: filename, value: uuid
*/
function getUUIDs(fileId) {
}
/**
- * Eosコマンドをエミュレートするクラス
+ * Eosコマンドをエミュレートするクラス
* @varructor
* @returns {object}
* function execute(command, params) {
*/
`;
-
+
describe('Eos クラス', function() {
before(function() {
});
var test2 = `
/**
- * 実行時文字列への変換
+ * 実行時文字列への変換
*
* @param command
* @param options
describe(test2, function() {
it('should return true when all options is proper.', function() {
var result = eos.toExecString('dcdFilePrint', [{name: '-r', arguments: [1,2,3]}, { name: '-i', arguments: ['file1.txt']}, { name: '-o', arguments: ['file3.txt']} ], "1f83f620-c1ed-11e5-9657-7942989daa00");
- expect(result).to.equal('dcdFilePrint -r 1 2 3 -s 10 -e 100 -d 10 -m 0 -i /Users/Takafumi/zephyr/server/class/../../user-specific-files/workspace/file1.txt -o /Users/Takafumi/zephyr/server/class/../../user-specific-files/workspace/file3.txt');
+ expect(result).to.equal('dcdFilePrint -r 1 2 3 -s 10 -e 100 -d 10 -m 0 -i /Users/hiratakengo/zephyr/server/class/../../user-specific-files/workspace/file1.txt -o /Users/hiratakengo/zephyr/server/class/../../user-specific-files/workspace/file3.txt');
});
});
var toExecArray = `
/**
- * 実行時配列への変換
+ * 実行時配列への変換
*
* @param command
* @returns {string}
});
});
-
+
describe('execute', function() {
before(function() {
process.env.NODE_ENV = '';
var getUUIDs = `
/**
* function getUUIDs(fileId)
- * uuidとファイル名のkey-valueを取得
+ * uuidとファイル名のkey-valueを取得
*
* @param fileId
* @returns {object} key: filename, value: uuid