@jdeighan/coffee-utils 4.0.3 → 4.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/fs_utils.coffee +28 -7
- package/src/fs_utils.js +28 -4
- package/src/private_env.coffee +1 -0
- package/src/private_env.js +1 -0
package/package.json
CHANGED
package/src/fs_utils.coffee
CHANGED
@@ -3,11 +3,11 @@
|
|
3
3
|
import {strict as assert} from 'assert'
|
4
4
|
import {
|
5
5
|
dirname, resolve, parse as parsePath,
|
6
|
-
} from 'path'
|
7
|
-
import {fileURLToPath} from 'url'
|
6
|
+
} from 'path'
|
7
|
+
import {fileURLToPath} from 'url'
|
8
8
|
import {
|
9
9
|
existsSync, copyFileSync, readFileSync, writeFileSync, readdirSync,
|
10
|
-
createReadStream, mkdirSync, renameSync,
|
10
|
+
createReadStream, mkdirSync, renameSync, statSync,
|
11
11
|
} from 'fs'
|
12
12
|
|
13
13
|
import {
|
@@ -23,7 +23,7 @@ import {debug} from '@jdeighan/coffee-utils/debug'
|
|
23
23
|
|
24
24
|
export mydir = (url) ->
|
25
25
|
|
26
|
-
return mkpath(dirname(fileURLToPath(url)))
|
26
|
+
return mkpath(dirname(fileURLToPath(url.replace(/\@/g, '%40'))))
|
27
27
|
|
28
28
|
# ---------------------------------------------------------------------------
|
29
29
|
|
@@ -102,8 +102,8 @@ export withExt = (filename, newExt) ->
|
|
102
102
|
export getSubDirs = (dir) ->
|
103
103
|
|
104
104
|
return readdirSync(dir, {withFileTypes: true}) \
|
105
|
-
.filter((d)
|
106
|
-
.map((d)
|
105
|
+
.filter((d) -> d.isDirectory()) \
|
106
|
+
.map((d) -> mkpath(d.name)) \
|
107
107
|
.sort()
|
108
108
|
|
109
109
|
# ---------------------------------------------------------------------------
|
@@ -128,7 +128,7 @@ export forEachFile = (dir, cb, filt=undef, level=0) ->
|
|
128
128
|
if ent.isDirectory()
|
129
129
|
lSubDirectories.push ent
|
130
130
|
else if ent.isFile()
|
131
|
-
if
|
131
|
+
if ! filt?
|
132
132
|
cb(ent.name, dir, level)
|
133
133
|
else if isRegExp(filt)
|
134
134
|
if ent.name.match(filt)
|
@@ -184,3 +184,24 @@ export allPathsTo = (fname, searchDir) ->
|
|
184
184
|
return lPaths
|
185
185
|
else
|
186
186
|
return []
|
187
|
+
|
188
|
+
# ---------------------------------------------------------------------------
|
189
|
+
|
190
|
+
export newerDestFileExists = (srcPath, destPath) ->
|
191
|
+
|
192
|
+
debug "enter newerDestFileExists()"
|
193
|
+
if ! existsSync(destPath)
|
194
|
+
debug "return false from newerDestFileExists() - no file"
|
195
|
+
return false
|
196
|
+
srcModTime = statSync(srcPath).mtimeMs
|
197
|
+
destModTime = statSync(destPath).mtimeMs
|
198
|
+
debug "srcModTime = #{srcModTime}"
|
199
|
+
debug "destModTime = #{destModTime}"
|
200
|
+
if destModTime >= srcModTime
|
201
|
+
debug "#{destPath} is up to date"
|
202
|
+
debug "return true from newerDestFileExists()"
|
203
|
+
return true
|
204
|
+
else
|
205
|
+
debug "#{destPath} is old"
|
206
|
+
debug "return false from newerDestFileExists()"
|
207
|
+
return false
|
package/src/fs_utils.js
CHANGED
@@ -22,7 +22,8 @@ import {
|
|
22
22
|
readdirSync,
|
23
23
|
createReadStream,
|
24
24
|
mkdirSync,
|
25
|
-
renameSync
|
25
|
+
renameSync,
|
26
|
+
statSync
|
26
27
|
} from 'fs';
|
27
28
|
|
28
29
|
import {
|
@@ -48,7 +49,7 @@ import {
|
|
48
49
|
// mydir() - pass argument `import.meta.url` and it will return
|
49
50
|
// the directory your file is in
|
50
51
|
export var mydir = function(url) {
|
51
|
-
return mkpath(dirname(fileURLToPath(url)));
|
52
|
+
return mkpath(dirname(fileURLToPath(url.replace(/\@/g, '%40'))));
|
52
53
|
};
|
53
54
|
|
54
55
|
// ---------------------------------------------------------------------------
|
@@ -132,9 +133,9 @@ export var withExt = function(filename, newExt) {
|
|
132
133
|
export var getSubDirs = function(dir) {
|
133
134
|
return readdirSync(dir, {
|
134
135
|
withFileTypes: true
|
135
|
-
}).filter((d)
|
136
|
+
}).filter(function(d) {
|
136
137
|
return d.isDirectory();
|
137
|
-
}).map((d)
|
138
|
+
}).map(function(d) {
|
138
139
|
return mkpath(d.name);
|
139
140
|
}).sort();
|
140
141
|
};
|
@@ -238,3 +239,26 @@ export var allPathsTo = function(fname, searchDir) {
|
|
238
239
|
return [];
|
239
240
|
}
|
240
241
|
};
|
242
|
+
|
243
|
+
// ---------------------------------------------------------------------------
|
244
|
+
export var newerDestFileExists = function(srcPath, destPath) {
|
245
|
+
var destModTime, srcModTime;
|
246
|
+
debug("enter newerDestFileExists()");
|
247
|
+
if (!existsSync(destPath)) {
|
248
|
+
debug("return false from newerDestFileExists() - no file");
|
249
|
+
return false;
|
250
|
+
}
|
251
|
+
srcModTime = statSync(srcPath).mtimeMs;
|
252
|
+
destModTime = statSync(destPath).mtimeMs;
|
253
|
+
debug(`srcModTime = ${srcModTime}`);
|
254
|
+
debug(`destModTime = ${destModTime}`);
|
255
|
+
if (destModTime >= srcModTime) {
|
256
|
+
debug(`${destPath} is up to date`);
|
257
|
+
debug("return true from newerDestFileExists()");
|
258
|
+
return true;
|
259
|
+
} else {
|
260
|
+
debug(`${destPath} is old`);
|
261
|
+
debug("return false from newerDestFileExists()");
|
262
|
+
return false;
|
263
|
+
}
|
264
|
+
};
|
package/src/private_env.coffee
CHANGED