aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cli/actions.js4
-rw-r--r--src/files.js25
2 files changed, 24 insertions, 5 deletions
diff --git a/cli/actions.js b/cli/actions.js
index 8a8624e..6f8faea 100644
--- a/cli/actions.js
+++ b/cli/actions.js
@@ -153,9 +153,9 @@ function get(filePath) {
153 if (!files || files.entries.length === 0) { 153 if (!files || files.entries.length === 0) {
154 console.log('No files on the server. Use %s to upload some.', 'surfer put <file>'.yellow); 154 console.log('No files on the server. Use %s to upload some.', 'surfer put <file>'.yellow);
155 } else { 155 } else {
156 console.log('Files:'); 156 console.log('Entries:');
157 files.entries.forEach(function (entry) { 157 files.entries.forEach(function (entry) {
158 console.log('\t %s', entry); 158 console.log('\t %s', entry.isDirectory ? entry.filePath + '/' : entry.filePath);
159 }); 159 });
160 } 160 }
161 } else { 161 } else {
diff --git a/src/files.js b/src/files.js
index 2214449..520127d 100644
--- a/src/files.js
+++ b/src/files.js
@@ -1,6 +1,7 @@
1'use strict'; 1'use strict';
2 2
3var fs = require('fs'), 3var async = require('async'),
4 fs = require('fs'),
4 path = require('path'), 5 path = require('path'),
5 rm = require('del'), 6 rm = require('del'),
6 debug = require('debug')('files'), 7 debug = require('debug')('files'),
@@ -74,10 +75,28 @@ function get(req, res, next) {
74 75
75 debug('get', absoluteFilePath); 76 debug('get', absoluteFilePath);
76 77
78 if (!result.isDirectory() && !result.isFile()) return next(new HttpError(500, 'unsupported type'));
77 if (result.isFile()) return res.sendFile(absoluteFilePath); 79 if (result.isFile()) return res.sendFile(absoluteFilePath);
78 if (result.isDirectory()) return res.status(222).send({ entries: fs.readdirSync(absoluteFilePath) });
79 80
80 return next(new HttpError(500, 'unsupported type')); 81 async.map(fs.readdirSync(absoluteFilePath), function (filePath, callback) {
82 fs.stat(path.join(absoluteFilePath, filePath), function (error, result) {
83 if (error) return callback(error);
84
85 callback(null, {
86 isDirectory: result.isDirectory(),
87 isFile: result.isFile(),
88 atime: result.atime,
89 mtime: result.mtime,
90 ctime: result.ctime,
91 birthtime: result.birthtime,
92 size: result.size,
93 filePath: filePath
94 });
95 });
96 }, function (error, results) {
97 if (error) return next(new HttpError(500, error));
98 res.status(222).send({ entries: results });
99 });
81 }); 100 });
82} 101}
83 102