diff --git a/lib/hub.js b/lib/hub.js index 49cafe04..021e6415 100644 --- a/lib/hub.js +++ b/lib/hub.js @@ -6,58 +6,55 @@ const gun = Gun(); let chokidar; try { chokidar = require('chokidar') } catch (error) { - console.log('Type "npm i chokidar" if you want to use the hub feature !') } // Must install chokidar to use this feature. -function watch(what) { +function watch(what, opt) { + opt = opt || { } - // Set up the file watcher ! - const watcher = chokidar.watch(what, { - ignored: /(^|[\/\\])\../, // ignore dotfiles - persistent: true - }); + let modifiedPath = (opt.file || ""); - const log = console.log.bind(console); - - // Handle events ! - - watcher - .on('add', async function(path) { - - log(`File ${path} has been added`); - gun.get('hub').get(path).put({ - - file: path, // Add the path to the file. - content: fs.readFileSync(path, 'utf8') // Add the content of the file - - }).then(console.log('Done!')); - - }) - .on('change', async function(path) { + let watcher; + try { + // Set up the file watcher. + watcher = chokidar.watch(what, { + ignored: /(^|[\/\\])\../, // ignore dotfiles + persistent: true + }); - log(`File ${path} has been changed`); - - gun.get('hub').get(path).put({ - content: fs.readFileSync(path, 'utf8') // Just update the content not the path. (Performance) - }).then(console.log('Done!')) + const log = console.log.bind(console); - }) - .on('unlink', async function (path) { - - log(`File ${path} has been removed`); - - gun.get('hub').get(path).put({ - file: null, // Delete references to the file givent that it's been deleted. - content: null, + // Handle events ! + watcher + .on('add', async function(path) { + log(`File ${path} has been added`); + gun.get('hub').get(modifiedPath + '/' + path).put(fs.readFileSync(path, 'utf-8')) + }) - - }) - .on('addDir', path => log(`Directory ${path} has been added`)) - .on('unlinkDir', path => log(`Directory ${path} has been removed`)) - .on('error', error => log(`Watcher error: ${error}`)) - .on('ready', () => log('Initial scan complete. Ready for changes')) + .on('change', async function(path) { + + log(`File ${path} has been changed`); + gun.get('hub').get(modifiedPath + '/' + path).put(fs.readFileSync(path, 'utf-8')) + }) + .on('unlink', async function (path) { + + log(`File ${path} has been removed`); + gun.get('hub').get(modifiedPath + '/' + path).put(null) + + }) + .on('addDir', path => log(`Directory ${path} has been added`)) + .on('unlinkDir', path => log(`Directory ${path} has been removed`)) + .on('error', error => log(`Watcher error: ${error}`)) + .on('ready', () => log('Initial scan complete. Ready for changes')) + + } catch (err) { + console.log('If you want to use the hub feature, you must install `chokidar` by typing `npm i chokidar` in your terminal.') + } } -module.exports = { watch : watch, } \ No newline at end of file +gun.get('hub').on(data => { + console.log(data); +}) + +module.exports = { watch : watch, }