Skip to content

Instantly share code, notes, and snippets.

@joehand
Last active March 4, 2016 21:30
Show Gist options
  • Save joehand/137d0b99b42ceba4a6fa to your computer and use it in GitHub Desktop.
Save joehand/137d0b99b42ceba4a6fa to your computer and use it in GitHub Desktop.
Async Hyperdrive Append
var Hyperdrive = require('hyperdrive')
var Level = require('level')
var Swarm = require('discovery-swarm')
var swarmDefaults = require('datland-swarm-defaults')
var walker = require('folder-walker')
var each = require('stream-each')
var db = Level('./dat.db')
var drive = Hyperdrive(db)
var config = swarmDefaults({
// use the Dat default dns + discovery servers
stream: function () {
return drive.createPeerStream()
}
})
var swarm = Swarm(config)
var linkDir = process.argv[2] || process.cwd() // Share path given or current path
var archive = drive.add(linkDir)
var fileStream = walker(linkDir)
fileStream.on('data', function (data) {
console.log('entry', data.basename)
archive.appendFile(data.filepath, data.basename, function (err) {
if (err) throw err
console.log('appended to archive: ', data.filepath)
})
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment