UNPKG

829 BJavaScriptView Raw
1const { basename, dirname } = require('path')
2const { stat } = require('fs')
3const { promisify } = require('util')
4
5const cpy = require('cpy')
6const moveFile = require('move-file')
7
8const pStat = promisify(stat)
9
10// Move or copy a cached file/directory from/to a local one
11const moveCacheFile = async function(src, dest, move) {
12 // Moving is faster but removes the source files locally
13 if (move) {
14 return moveFile(src, dest, { overwrite: false })
15 }
16
17 const srcGlob = await getSrcGlob(src)
18 return cpy(srcGlob, dirname(dest), { cwd: dirname(src), parents: true, overwrite: false })
19}
20
21const getSrcGlob = async function(src) {
22 const srcBasename = basename(src)
23 const stat = await pStat(src)
24
25 if (stat.isDirectory()) {
26 return `${srcBasename}/**`
27 }
28
29 return srcBasename
30}
31
32module.exports = { moveCacheFile }