1 | fs = require("fs")
|
2 | path = require("path")
|
3 |
|
4 | module.exports = class FileUtil
|
5 |
|
6 | @cleanSync: (src, deleteFolder=true) ->
|
7 | if fs.existsSync(src)
|
8 | files = fs.readdirSync(src)
|
9 | files.forEach (file) =>
|
10 | curSrc = "#{src}/#{file}"
|
11 | if fs.lstatSync(curSrc).isDirectory()
|
12 | @cleanSync(curSrc);
|
13 | else
|
14 | fs.unlinkSync(curSrc);
|
15 | console.log("delete #{curSrc}")
|
16 |
|
17 | if deleteFolder
|
18 | fs.rmdirSync(src);
|
19 | console.log("delete #{src}")
|
20 |
|
21 | @copySync: (src, dest) ->
|
22 | stats = fs.statSync(src)
|
23 | isDirectory = stats.isDirectory()
|
24 | if isDirectory
|
25 | fs.mkdirSync(dest)
|
26 | fs.readdirSync(src).forEach (file) =>
|
27 | @copySync(path.join(src, file), path.join(dest, file))
|
28 | else
|
29 | fs.linkSync(src, dest)
|
30 |
|
31 | @chownSync: (src, uid, gid) ->
|
32 | uid = 501
|
33 | gid = 20
|
34 |
|
35 | stats = fs.statSync(src)
|
36 | isDirectory = stats.isDirectory();
|
37 | if isDirectory
|
38 | fs.readdirSync(src).forEach (file) =>
|
39 | @chownSync(path.join(src, file), uid, gid)
|
40 | fs.chownSync(src, uid, gid)
|
41 | else
|
42 | console.log("chown: #{src}")
|
43 | fs.chownSync(src, uid, gid)
|