UNPKG

525 BJavaScriptView Raw
1"use strict";
2
3const exec = require('child_process').exec;
4const existsSync = require('fs').existsSync;
5const sprintf = require('../string/format');
6const defer = require('../promise/defer');
7
8const IS_WINDOWS = require('os').platform() == 'win32';
9
10function rmrf(dir) {
11 if(!existsSync(dir))
12 return Promise.resolve(true);
13
14 var defered = defer();
15 /*istanbul ignore next*/
16 var cmd = sprintf(IS_WINDOWS ? 'rd /s /q "%s"' : 'rm -rf "%s"', dir);
17 exec(cmd, defered.chain);
18 return defered;
19}
20
21module.exports = rmrf;