X-Git-Url: http://git.pjr.cc/?p=nodejs-repoproxy.git;a=blobdiff_plain;f=lib%2Fmaintain.js;fp=lib%2Fmaintain.js;h=cbed4a24128191e98f442636ac0aa10158d5548a;hp=e336d4ad96a04792f5a6cf3a9d39b0f133742e4f;hb=85fcaedb62209c356da64b865f981d212ae593d4;hpb=04f3190a0bcc430af31917456a957ecc80eb160b diff --git a/lib/maintain.js b/lib/maintain.js index e336d4a..cbed4a2 100644 --- a/lib/maintain.js +++ b/lib/maintain.js @@ -14,11 +14,14 @@ function maintainCache() { switch(global.repoproxy.repo[index]["type"]) { case "apt": console.log("Scanning '%s' as apt", index); - repoapt.maintain(global.repoproxy.repo[index]); + var walkin = path.normalize(global.repoproxy.cacheDir + "/" + index); + walkDir(walkin, function(err, list) { + repoapt.maintain(index, global.repoproxy.repo[index], list); + }) break; case "yum": - console.log("Scanning '%s' as apt", index); - repoyum.maintain(global.repoproxy.repo[index]); + //console.log("Scanning '%s' as apt", index); + //repoyum.maintain(global.repoproxy.repo[index]); break; } } @@ -33,6 +36,34 @@ exports.startTimer = function() { setInterval(maintainCache, cacheTimer); } +// this code comes frmo http://stackoverflow.com/questions/5827612/node-js-fs-readdir-recursive-directory-search +function walkDir(dir, done) { + var results = []; + + fs.readdir(dir, function(err, list) { + if (err) return done(err); + var i = 0; + (function next() { + var file = list[i++]; + if (!file) return done(null, results); + file = path.normalize(dir + "/" + file); + fs.stat(file, function(err, stat) { + if (stat && stat.isDirectory()) { + walkDir(file, function(err, res) { + results = results.concat(res); + next(); + }); + } else { + if(!file.match(/.*\.meta.*\.filesize/)) results.push(file); + next(); + } + }); + })(); + }); +}; + +exports.walkDir = walkDir; + function cleanupRoutine() { } \ No newline at end of file