Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
Choose a Base Repository
datproject/dat
6a68/dat
ANB2/dat
Afey/dat
Ago3t1nho/dat
AlexJiaeHwang/dat
AlexandreXavier/dat
DTrejo/dat
DanteZhou/dat
FLGMwt/dat
GeoBIMpro/dat
HackG/dat
JakenHerman/dat
Klaudit/dat
LinusU/dat
MaxGfeller/dat
Mkoopajr/dat
NEPHILIM-1/dat
NortySpock/dat
Renthusiast/dat
RichardLitt/dat
SanjeebJena/dat
StarNebula/dat
WardCunningham/dat
WorldofOpenDev/dat
YanLinAung/dat
adriagalin/dat
agibsonccc/dat
ajschumacher/dat
akoenig/dat
anandthakker/dat
asd1355215911/dat
atul4mlko/dat
beaugunderson/dat
benitogf/dat
bigeasy/dat
binocarlos/dat
bmpvieira/dat
bnvk/dat
bradparks/dat
bsletten/dat
bussiere/dat
captainsafia/dat
ceejbot/dat
cesine/dat
chillypenguin/dat
chipski/dat
chrisekelley/dat
chuesler/dat
chumpalump/dat
clemsos/dat
cmpera/dat
cnwhy/dat
corbt/dat
dafyddcrosby/dat
davidguttman/dat
delkyd/dat
denismars/dat
derek-watson/dat
devildeveloper/dat
digideskio/dat
diorahman/dat
domspad/dat
dr-lab/dat
eayoungs/dat
ecoviz/dat
edsu/dat
ekg/dat
elf-pavlik/dat
engalex/dat
evanv/dat
finnp/dat
flyingzumwalt/dat
frewsxcv/dat
fureigh/dat
fusuma/dat
gabelula/dat
gabrielcury/dat
gavioto/dat
giantoak/dat
gijs/dat
gobengo/dat
groundrace/dat
hackerway/dat
hadoocn/dat
hasantayyar/dat
hexagon6/dat
hunterwayne7/dat
hyperwalle/dat
inno-v/dat
isayev/dat
jahraphael/dat
jamiepg1/dat
jarib/dat
jay3126/dat
jbenet/dat
jcblw/dat
jimjea/dat
jjjjw/dat
jkutianski/dat
joaquimserafim/dat
josephmartz/dat
joyrexus/dat
jqnatividad/dat
jronallo/dat
karissa/dat
kesla/dat
kevinsimper/dat
keynmol/dat
khayuenkam/dat
kod3r/dat
kodemill/dat
konklone/dat
lazycrazyowl/dat
lazymike/dat
lemonhall/dat
literalsands/dat
llenroc/dat
lmmx/dat
lnielsen/dat
mafintosh/dat
manjush3v/dat
marcesher/dat
marcoippolito/dat
markandrewj/dat
mathisonian/dat
mattknox/dat
mcanthony/dat
mikelehen/dat
mnjstwins/dat
modulexcite/dat
mshayeb/dat
myf/dat
nagyistoce/dat
natematias/dat
natlownes/dat
ngEdmundas/dat
nikita0208/dat
nvcexploder/dat
nvdnkpr/dat
optikfluffel/dat
paulfitz/dat
pilhokim/dat
pjbr/dat
pkafei/dat
podviaznikov/dat
pombredanne/dat
powerpak/dat
prodigeni/dat
pshken/dat
rakesh-mohanta/dat
reggi/dat
rgbkrk/dat
rjsteinert/dat
rliebi/dat
rmoorman/dat
rramdas/dat
ryancoleman/dat
saebekassebil/dat
samuell/dat
sballesteros/dat
schee/dat
schlos/dat
sethvincent/dat
sfrdmn/dat
shama/dat
silky/dat
smikes/dat
sportebois/dat
springmeyer/dat
stamhe/dat
stefanw/dat
suarasaur/dat
suensummit/dat
syncreticudon/dat
tacaswell/dat
tahoemph/dat
tforsberg/dat
timoxley/dat
tlevine/dat
todrobbins/dat
trygve-lie/dat
twistedogic/dat
twong/dat
tylerstalder/dat
vfulco/dat
vnoxygen/dat
vojnovski/dat
waqaszahoor/dat
wbteve/dat
wking/dat
xazzz/dat
xnsxns7/dat
yalamber/dat
ychaim/dat
yetone/dat
yueyingcui/dat
ywyw/dat
zawsx/opendata-db-dat
zofuthan/dat
Nothing to show
Choose a Head Repository
datproject/dat
6a68/dat
ANB2/dat
Afey/dat
Ago3t1nho/dat
AlexJiaeHwang/dat
AlexandreXavier/dat
DTrejo/dat
DanteZhou/dat
FLGMwt/dat
GeoBIMpro/dat
HackG/dat
JakenHerman/dat
Klaudit/dat
LinusU/dat
MaxGfeller/dat
Mkoopajr/dat
NEPHILIM-1/dat
NortySpock/dat
Renthusiast/dat
RichardLitt/dat
SanjeebJena/dat
StarNebula/dat
WardCunningham/dat
WorldofOpenDev/dat
YanLinAung/dat
adriagalin/dat
agibsonccc/dat
ajschumacher/dat
akoenig/dat
anandthakker/dat
asd1355215911/dat
atul4mlko/dat
beaugunderson/dat
benitogf/dat
bigeasy/dat
binocarlos/dat
bmpvieira/dat
bnvk/dat
bradparks/dat
bsletten/dat
bussiere/dat
captainsafia/dat
ceejbot/dat
cesine/dat
chillypenguin/dat
chipski/dat
chrisekelley/dat
chuesler/dat
chumpalump/dat
clemsos/dat
cmpera/dat
cnwhy/dat
corbt/dat
dafyddcrosby/dat
davidguttman/dat
delkyd/dat
denismars/dat
derek-watson/dat
devildeveloper/dat
digideskio/dat
diorahman/dat
domspad/dat
dr-lab/dat
eayoungs/dat
ecoviz/dat
edsu/dat
ekg/dat
elf-pavlik/dat
engalex/dat
evanv/dat
finnp/dat
flyingzumwalt/dat
frewsxcv/dat
fureigh/dat
fusuma/dat
gabelula/dat
gabrielcury/dat
gavioto/dat
giantoak/dat
gijs/dat
gobengo/dat
groundrace/dat
hackerway/dat
hadoocn/dat
hasantayyar/dat
hexagon6/dat
hunterwayne7/dat
hyperwalle/dat
inno-v/dat
isayev/dat
jahraphael/dat
jamiepg1/dat
jarib/dat
jay3126/dat
jbenet/dat
jcblw/dat
jimjea/dat
jjjjw/dat
jkutianski/dat
joaquimserafim/dat
josephmartz/dat
joyrexus/dat
jqnatividad/dat
jronallo/dat
karissa/dat
kesla/dat
kevinsimper/dat
keynmol/dat
khayuenkam/dat
kod3r/dat
kodemill/dat
konklone/dat
lazycrazyowl/dat
lazymike/dat
lemonhall/dat
literalsands/dat
llenroc/dat
lmmx/dat
lnielsen/dat
mafintosh/dat
manjush3v/dat
marcesher/dat
marcoippolito/dat
markandrewj/dat
mathisonian/dat
mattknox/dat
mcanthony/dat
mikelehen/dat
mnjstwins/dat
modulexcite/dat
mshayeb/dat
myf/dat
nagyistoce/dat
natematias/dat
natlownes/dat
ngEdmundas/dat
nikita0208/dat
nvcexploder/dat
nvdnkpr/dat
optikfluffel/dat
paulfitz/dat
pilhokim/dat
pjbr/dat
pkafei/dat
podviaznikov/dat
pombredanne/dat
powerpak/dat
prodigeni/dat
pshken/dat
rakesh-mohanta/dat
reggi/dat
rgbkrk/dat
rjsteinert/dat
rliebi/dat
rmoorman/dat
rramdas/dat
ryancoleman/dat
saebekassebil/dat
samuell/dat
sballesteros/dat
schee/dat
schlos/dat
sethvincent/dat
sfrdmn/dat
shama/dat
silky/dat
smikes/dat
sportebois/dat
springmeyer/dat
stamhe/dat
stefanw/dat
suarasaur/dat
suensummit/dat
syncreticudon/dat
tacaswell/dat
tahoemph/dat
tforsberg/dat
timoxley/dat
tlevine/dat
todrobbins/dat
trygve-lie/dat
twistedogic/dat
twong/dat
tylerstalder/dat
vfulco/dat
vnoxygen/dat
vojnovski/dat
waqaszahoor/dat
wbteve/dat
wking/dat
xazzz/dat
xnsxns7/dat
yalamber/dat
ychaim/dat
yetone/dat
yueyingcui/dat
ywyw/dat
zawsx/opendata-db-dat
zofuthan/dat
Nothing to show
  • 2 commits
  • 5 files changed
  • 0 commit comments
  • 1 contributor
Commits on Jun 28, 2016
Showing with 48 additions and 59 deletions.
  1. +1 −3 commands/share.js
  2. +17 −5 lib/append.js
  3. +0 −1 package.json
  4. +19 −14 tests/download.js
  5. +11 −36 tests/share.js
View
@@ -9,7 +9,6 @@ module.exports = function (args) {
var log = logger(args)
var addText = 'Adding '
var finalized = false
var updated = false
var initFileCount = 0
@@ -19,7 +18,7 @@ module.exports = function (args) {
dat.on('ready', function () {
log.message('Initializing Dat in ' + dat.dir + '\n')
dat.share(function (err) {
onerror(err)
if (err) onerror(err)
})
})
@@ -38,7 +37,6 @@ module.exports = function (args) {
dat.on('archive-finalized', function () {
addText = 'Added '
finalized = true
initFileCount = dat.stats.filesTotal
printStats()
})
View
@@ -1,13 +1,15 @@
var fs = require('fs')
var path = require('path')
var countFiles = require('count-files')
var walker = require('folder-walker')
var each = require('stream-each')
module.exports.initialAppend = function (dat, cb) {
countFiles(dat.dir, {filter: ignore}, function (err, stats) {
var appendStats = {
files: 0,
dirs: 0,
bytes: 0
}
each(walker(dat.dir, {filter: ignore}), countFiles, function (err) {
if (err) cb(err)
dat.appendStats = stats
dat.appendStats = appendStats
dat.emit('append-ready')
if (dat.resume) {
@@ -20,6 +22,16 @@ module.exports.initialAppend = function (dat, cb) {
}
})
function countFiles (data, next) {
if (data.type === 'directory') {
appendStats.dirs += 1
} else {
appendStats.files += 1
appendStats.bytes += data.stat.size
}
next()
}
function walkFolder (resume) {
var fileStream = walker(dat.dir, {filter: ignore})
if (resume) each(fileStream, resumeAppend, cb)
View
@@ -24,7 +24,6 @@
"license": "BSD-3-Clause",
"dependencies": {
"chalk": "^1.1.1",
"count-files": "^1.0.1",
"datland-swarm-defaults": "^1.0.0",
"debug": "^2.2.0",
"discovery-swarm": "^4.0.0",
View
@@ -27,9 +27,9 @@ test('starts looking for peers with correct hash', function (t) {
})
test('errors with invalid hash', function (t) {
// cmd: dat pizza tmp
rimraf.sync(path.join(tmp, '.dat'))
var st = spawn(t, dat + ' pizza ' + tmp)
// cmd: dat pizza downloadDir
rimraf.sync(path.join(downloadDir, '.dat'))
var st = spawn(t, dat + ' pizza ' + downloadDir)
st.stderr.match(function (output) {
var gotError = output.indexOf('Invalid Dat Link') > -1
t.ok(gotError, 'got error')
@@ -43,7 +43,7 @@ test('errors on new download without directory', function (t) {
rimraf.sync(path.join(process.cwd(), '.dat')) // in case we have a .dat folder here
var st = spawn(t, dat + ' 9d011b6c9de26e53e9961c8d8ea840d33e0d8408318332c9502bad112cad9989')
st.stderr.match(function (output) {
var gotError = output.indexOf('Please specify a directory.') > -1
var gotError = output.indexOf('Directory does not exist') > -1
t.ok(gotError, 'got error')
if (gotError) return true
})
@@ -68,7 +68,7 @@ test('download resumes with same key', function (t) {
// cmd: dat <link> tmpdir
var downloader = spawn(t, dat + ' ' + link + ' ' + tmpdir, {end: false})
downloader.stdout.match(function (output) {
var contains = output.indexOf('DONE') > -1
var contains = output.indexOf('Downloaded') > -1
if (!contains || !share) return false
downloader.kill()
spawnDownloaderTwo()
@@ -78,14 +78,14 @@ test('download resumes with same key', function (t) {
}
function spawnDownloaderTwo () {
// cmd: dat <link> (no dir required in cwd w/ dat folder)
var downloaderTwo = spawn(t, dat + ' ' + link, {cwd: tmpdir, end: false})
// cmd: dat <link> .
var downloaderTwo = spawn(t, dat + ' ' + link + ' ' + tmpdir, {end: false})
downloaderTwo.stdout.match(function (output) {
var contains = output.indexOf('Initializing') > -1
var contains = output.indexOf('Downloaded') > -1
if (!contains || !share) return false
downloaderTwo.kill()
return true
}, 'download two resumed without dir argument')
}, 'download two resumed with same key')
downloaderTwo.end(function () {
t.end()
})
@@ -111,10 +111,10 @@ test('download transfers files', function (t) {
function startDownloader () {
var downloader = spawn(t, dat + ' ' + link + ' ' + tmpdir, {end: false})
downloader.stdout.match(function (output) {
var contains = output.indexOf('Finished') > -1
var contains = output.indexOf('Downloaded') > -1
if (!contains || !share) return false
var hasFiles = output.indexOf('3 items') > -1
var hasFiles = output.indexOf('3 files') > -1
t.ok(hasFiles, 'file number is 3')
var hasSize = output.indexOf('1.44 kB') > -1
@@ -145,16 +145,21 @@ test('download transfers files', function (t) {
}
})
process.on('exit', function () {
console.log('cleaning up')
rimraf.sync(downloadDir)
})
function newTestFolder () {
var tmpdir = tmp + '/dat-download-folder-test'
var tmpdir = path.join(os.tmpdir(), 'dat-download-folder')
rimraf.sync(tmpdir)
mkdirp.sync(tmpdir)
return tmpdir
}
function matchDatLink (output) {
// TODO: dat.land links
var match = output.match(/Link [A-Za-z0-9]{64}/)
var match = output.match(/Link: [A-Za-z0-9]{64}/)
if (!match) return false
return match[0].split('Link ')[1].trim()
return match[0].split('Link: ')[1].trim()
}
View
@@ -4,7 +4,7 @@ var test = require('tape')
var rimraf = require('rimraf')
var spawn = require('./helpers/spawn.js')
var dat = path.resolve(path.join(__dirname, '..', 'cli.js'))
var dat = path.resolve(path.join(__dirname, '..', 'bin', 'cli.js'))
var fixtures = path.join(__dirname, 'fixtures')
var fixturesStaticLink
@@ -99,25 +99,13 @@ test('share prints shared directory', function (t) {
test('prints file information (live)', function (t) {
// cmd: dat tests/fixtures
var st = spawn(t, dat + ' ' + fixtures)
var matchedFiles = 0
st.stdout.match(function (output) {
var finished = output.match('Sharing')
var finished = output.match('Added')
if (!finished) return false
var fileList = output.split('\n').filter(function (line) {
return line.indexOf('[DONE]') > -1
})
fileList.forEach(function (file) {
file = file.split('[DONE]')[1]
if (file.match(/all_hour|empty/)) matchedFiles += 1
})
t.ok((matchedFiles === 2), 'Printed ' + matchedFiles + ' file names')
var fileStats = output.split('\n').filter(function (line) {
return line.indexOf('Items') > -1
})[0]
t.ok(fileStats.match(/Items: 3/), 'File count correct')
t.ok(fileStats.match(/Size: 1\.44 kB/), 'File size correct')
console.log(output)
t.ok(output.match(/2 files/), 'File count correct')
t.ok(output.match(/1\.44 kB/), 'File size correct')
st.kill()
cleanDat()
@@ -126,28 +114,15 @@ test('prints file information (live)', function (t) {
st.end()
})
test('prints file information (static)', function (t) {
test('prints file information (snapshot)', function (t) {
// cmd: dat tests/fixtures --snapshot
var st = spawn(t, dat + ' ' + fixtures + ' --snapshot')
var matchedFiles = 0
st.stdout.match(function (output) {
var finished = output.match('Sharing Snapshot')
var finished = output.match('Added')
if (!finished) return false
var fileList = output.split('\n').filter(function (line) {
return line.indexOf('[DONE]') > -1
})
fileList.forEach(function (file) {
file = file.split('[DONE]')[1]
if (file.match(/all_hour|empty/)) matchedFiles += 1
})
t.ok((matchedFiles === 2), 'Printed ' + matchedFiles + ' file names')
var fileStats = output.split('\n').filter(function (line) {
return line.indexOf('Items') > -1
})[0]
t.ok(fileStats.match(/Items: 2/), 'File count correct') // TODO: make this consitent w/ live
t.ok(fileStats.match(/Size: 1\.44 kB/), 'File size correct')
t.ok(output.match(/2 files/), 'File count correct')
t.ok(output.match(/1\.44 kB/), 'File size correct')
st.kill()
cleanDat()
@@ -176,7 +151,7 @@ function cleanDat () {
function matchDatLink (output) {
// TODO: dat.land links
var match = output.match(/Link [A-Za-z0-9]{64}/)
var match = output.match(/Link: [A-Za-z0-9]{64}/)
if (!match) return false
return match[0].split('Link ')[1].trim()
return match[0].split('Link: ')[1].trim()
}

No commit comments for this range