aboutsummaryrefslogtreecommitdiffhomepage
path: root/cli/actions.js
diff options
context:
space:
mode:
authorJohannes Zellner <johannes@nebulon.de>2016-03-01 13:04:12 +0100
committerJohannes Zellner <johannes@nebulon.de>2016-03-01 13:04:12 +0100
commit898fe7c8bb0b04eea2e91d92f275c95713e8ec79 (patch)
tree4ece088cfaa7a1ea29942a73315a71a61f84d4de /cli/actions.js
parentd755925f749b88157e0935a7fa3c3ed94480292e (diff)
downloadSurfer-898fe7c8bb0b04eea2e91d92f275c95713e8ec79.tar.gz
Surfer-898fe7c8bb0b04eea2e91d92f275c95713e8ec79.tar.zst
Surfer-898fe7c8bb0b04eea2e91d92f275c95713e8ec79.zip
Fix file deletion and add dry-run option
Diffstat (limited to 'cli/actions.js')
-rw-r--r--cli/actions.js21
1 files changed, 16 insertions, 5 deletions
diff --git a/cli/actions.js b/cli/actions.js
index d10e154..8a8624e 100644
--- a/cli/actions.js
+++ b/cli/actions.js
@@ -180,16 +180,27 @@ function get(filePath) {
180 // }); 180 // });
181} 181}
182 182
183function del(filePath) { 183function del(filePath, options) {
184 checkConfig(); 184 checkConfig();
185 185
186 var query = safe.JSON.parse(safe.JSON.stringify(gQuery));
187 query.recursive = options.recursive;
188 query.dryRun = options.dryRun;
189
186 var relativeFilePath = path.resolve(filePath).slice(process.cwd().length + 1); 190 var relativeFilePath = path.resolve(filePath).slice(process.cwd().length + 1);
187 superagent.del(config.server() + API + relativeFilePath).query(gQuery).end(function (error, result) { 191 superagent.del(config.server() + API + relativeFilePath).query(query).end(function (error, result) {
188 if (error && error.status === 401) return console.log('Login failed'); 192 if (error && error.status === 401) return console.log('Login failed'.red);
189 if (error && error.status === 404) return console.log('No such file or directory'); 193 if (error && error.status === 404) return console.log('No such file or directory');
190 if (error && error.status === 403) return console.log('No such file or directory'); 194 if (error && error.status === 403) return console.log('Failed. Target is a directory. Use %s to delete directories.', '--recursive'.yellow);
191 if (error) return console.log('Failed', result ? result.body : error); 195 if (error) return console.log('Failed', result ? result.body : error);
192 196
193 console.log('Success. Removed %s files.', result.body.entries.length); 197 if (options.dryRun) {
198 console.log('This would remove %s files:', result.body.entries.length);
199 result.body.entries.forEach(function (entry) {
200 console.log('\t %s', entry);
201 });
202 } else {
203 console.log('Success. Removed %s files.', result.body.entries.length);
204 }
194 }); 205 });
195} 206}