65 lines
1.2 KiB
JavaScript
65 lines
1.2 KiB
JavaScript
import fs from 'fs/promises'
|
|
import path from 'path'
|
|
import { watch } from 'chokidar'
|
|
|
|
function main() {
|
|
let watchDir = ''
|
|
let sections = []
|
|
|
|
process.argv.forEach((val, i) => {
|
|
switch (val) {
|
|
case '-i':
|
|
watchDir = process.argv[i + 1] || ''
|
|
break
|
|
|
|
default:
|
|
break
|
|
}
|
|
})
|
|
|
|
if (!watchDir) {
|
|
console.error('no directory passed')
|
|
}
|
|
|
|
const w = watch(watchDir, {
|
|
persistent: true,
|
|
awaitWriteFinish: {
|
|
stabilityThreshold: 2000,
|
|
pollInterval: 100
|
|
},
|
|
})
|
|
|
|
w.on('ready',() => {
|
|
console.log('Watching', watchDir, 'for changes.')
|
|
// check each section against json file
|
|
console.log(sections)
|
|
|
|
|
|
})
|
|
|
|
w.on('add', (filePath) => {
|
|
fileAddedHandler(filePath, sections)
|
|
})
|
|
|
|
w.on('change', path => console.log(`File ${path} has been changed`))
|
|
w.on('unlink', path => console.log(`File ${path} has been removed`))
|
|
}
|
|
|
|
function fileAddedHandler(filePath, array) {
|
|
let section, media
|
|
|
|
let fp = filePath.replace(/^\.+/, '')
|
|
fp = path.parse(fp).dir.split(path.sep)
|
|
console.log(fp)
|
|
|
|
// 5 is recurse 4 is not
|
|
console.log(fp[3], fp.length)
|
|
section = fp[3]
|
|
media = fp[4]
|
|
|
|
console.log(media)
|
|
}
|
|
|
|
|
|
main()
|