mirror of
https://github.com/Dahlgren/arma-server-web-admin.git
synced 2024-08-30 17:22:10 +00:00
Return folders and files when fetching a mod
This commit is contained in:
parent
2841f4c9dc
commit
7d11af4633
@ -6,6 +6,7 @@
|
||||
"dependencies": {
|
||||
"express": "3.x",
|
||||
"slug": "~0.4.0",
|
||||
"express-resource": "~1.0.0"
|
||||
"express-resource": "~1.0.0",
|
||||
"when": "~3.1.0"
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,47 @@
|
||||
var fs = require('fs');
|
||||
var fs = require('fs')
|
||||
, path = require('path')
|
||||
, when = require('when')
|
||||
, nodefn = require('when/node/function');
|
||||
|
||||
var config = require('./../config');
|
||||
|
||||
function walk (directory) {
|
||||
createFile = function (file, stat) {
|
||||
return {
|
||||
type: "file",
|
||||
name: file,
|
||||
size: stat.size
|
||||
};
|
||||
};
|
||||
|
||||
createFolder = function (folder) {
|
||||
return {
|
||||
type: "folder",
|
||||
name: folder,
|
||||
files: []
|
||||
};
|
||||
};
|
||||
|
||||
var results = [];
|
||||
|
||||
return when.map(nodefn.call(fs.readdir, directory), function(file) {
|
||||
var absolutePath = path.join(directory, file);
|
||||
return nodefn.call(fs.stat, absolutePath).then(function(stat) {
|
||||
if (stat.isFile()) {
|
||||
return results.push(createFile(file, stat));
|
||||
}
|
||||
|
||||
folder = createFolder(file);
|
||||
return walk(absolutePath).then(function(filesInDir) {
|
||||
folder.files = filesInDir;
|
||||
results.push(folder);
|
||||
});
|
||||
});
|
||||
}).then(function() {
|
||||
return results;
|
||||
});
|
||||
};
|
||||
|
||||
exports.index = function(req, res){
|
||||
fs.readdir(config.path, function (err, files) {
|
||||
if (err) {
|
||||
@ -22,9 +62,14 @@ exports.create = function(req, res){
|
||||
};
|
||||
|
||||
exports.show = function(req, res){
|
||||
res.send('show mod ' + req.params.mod);
|
||||
walk(config.path + "/" + req.params.mod).then(function(files) {
|
||||
res.json(files);
|
||||
}).otherwise(function(error) {
|
||||
console.error(error.stack || error);
|
||||
res.send({success: false});
|
||||
});
|
||||
};
|
||||
|
||||
exports.destroy = function(req, res){
|
||||
res.send('destroy mod ' + req.params.mod);
|
||||
};
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user