|
|
|
@ -81,6 +81,7 @@ nThen((waitFor) => {
|
|
|
|
|
sema.take((returnAfter) => {
|
|
|
|
|
Fs.stat(f, waitFor(returnAfter((err, st) => {
|
|
|
|
|
if (err) { throw err; }
|
|
|
|
|
st.filename = f;
|
|
|
|
|
dsFileStats[f.replace(/^.*\/([^\/\.]*)(\.ndjson)?$/, (all, a) => (a))] = st;
|
|
|
|
|
})));
|
|
|
|
|
});
|
|
|
|
@ -118,18 +119,27 @@ nThen((waitFor) => {
|
|
|
|
|
}).nThen(() => {
|
|
|
|
|
if (process.argv.indexOf('--unpinned') > -1) {
|
|
|
|
|
const ot = process.argv.indexOf('--olderthan');
|
|
|
|
|
let before = 0;
|
|
|
|
|
let before = Infinity;
|
|
|
|
|
if (ot > -1) {
|
|
|
|
|
before = new Date(process.argv[ot+1]);
|
|
|
|
|
if (isNaN(before)) {
|
|
|
|
|
throw new Error('--olderthan error [' + process.argv[ot+1] + '] not a valid date');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const bot = process.argv.indexOf('--blobsolderthan');
|
|
|
|
|
let blobsbefore = before;
|
|
|
|
|
if (bot > -1) {
|
|
|
|
|
blobsbefore = new Date(process.argv[bot+1]);
|
|
|
|
|
if (isNaN(blobsbefore)) {
|
|
|
|
|
throw new Error('--blobsolderthan error [' + process.argv[bot+1] + '] not a valid date');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Object.keys(dsFileStats).forEach((f) => {
|
|
|
|
|
if (!(f in pinned)) {
|
|
|
|
|
if ((+dsFileStats[f].mtime) >= before) { return; }
|
|
|
|
|
console.log("./datastore/" + f.slice(0,2) + "/" + f + ".ndjson " +
|
|
|
|
|
dsFileStats[f].size + " " + (+dsFileStats[f].mtime));
|
|
|
|
|
const isBlob = dsFileStats[f].filename.indexOf('.ndjson') === -1;
|
|
|
|
|
if ((+dsFileStats[f].mtime) >= ((isBlob) ? blobsbefore : before)) { return; }
|
|
|
|
|
console.log(dsFileStats[f].filename + " " + dsFileStats[f].size + " " +
|
|
|
|
|
(+dsFileStats[f].mtime));
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|