Merge branch 'staging' into offline2
commit
0110342ef5
@ -0,0 +1,13 @@
|
||||
@import (reference) "../include/colortheme-all.less";
|
||||
@import (reference) "../include/font.less";
|
||||
|
||||
html, body {
|
||||
.font_main();
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
background-color: @cp_static-bg !important;
|
||||
color: @cryptpad_text_col;
|
||||
font-family: "IBM Plex Mono";
|
||||
}
|
||||
|
@ -0,0 +1,102 @@
|
||||
var Eviction = require("../lib/eviction");
|
||||
var nThen = require("nthen");
|
||||
var Store = require("../lib/storage/file");
|
||||
var BlobStore = require("../lib/storage/blob");
|
||||
|
||||
var Quota = require("../lib/commands/quota");
|
||||
var Environment = require("../lib/env");
|
||||
var Decrees = require("../lib/decrees");
|
||||
|
||||
var config = require("../lib/load-config");
|
||||
|
||||
var Env = Environment.create(config);
|
||||
|
||||
var loadPremiumAccounts = function (Env, cb) {
|
||||
nThen(function (w) {
|
||||
// load premium accounts
|
||||
Quota.updateCachedLimits(Env, w(function (err) {
|
||||
if (err) {
|
||||
Env.Log.error('EVICT_LOAD_PREMIUM_ACCOUNTS', {
|
||||
error: err,
|
||||
});
|
||||
}
|
||||
}));
|
||||
}).nThen(function (w) {
|
||||
// load and apply decrees
|
||||
Decrees.load(Env, w(function (err) {
|
||||
if (err) {
|
||||
Env.Log.error('EVICT_LOAD_DECREES', {
|
||||
error: err.code || err,
|
||||
message: err.message,
|
||||
});
|
||||
}
|
||||
}));
|
||||
}).nThen(function () {
|
||||
//console.log(Env.limits);
|
||||
cb();
|
||||
});
|
||||
};
|
||||
|
||||
var prepareEnv = function (Env, cb) {
|
||||
//Quota.applyCustomLimits(Env);
|
||||
|
||||
nThen(function (w) {
|
||||
/* Database adaptors
|
||||
*/
|
||||
|
||||
// load the store which will be used for iterating over channels
|
||||
// and performing operations like archival and deletion
|
||||
Store.create(config, w(function (err, _) {
|
||||
if (err) {
|
||||
w.abort();
|
||||
throw err;
|
||||
}
|
||||
Env.store = _;
|
||||
}));
|
||||
|
||||
Store.create({
|
||||
filePath: config.pinPath,
|
||||
}, w(function (err, _) {
|
||||
if (err) {
|
||||
w.abort();
|
||||
throw err;
|
||||
}
|
||||
Env.pinStore = _;
|
||||
}));
|
||||
|
||||
// load the logging module so that you have a record of which
|
||||
// files were archived or deleted at what time
|
||||
var Logger = require("../lib/log");
|
||||
Logger.create(config, w(function (_) {
|
||||
Env.Log = _;
|
||||
}));
|
||||
|
||||
config.getSession = function () {};
|
||||
BlobStore.create(config, w(function (err, _) {
|
||||
if (err) {
|
||||
w.abort();
|
||||
return console.error(err);
|
||||
}
|
||||
Env.blobStore = _;
|
||||
}));
|
||||
}).nThen(function (w) {
|
||||
loadPremiumAccounts(Env, w(function (/* err */) {
|
||||
//if (err) { }
|
||||
}));
|
||||
}).nThen(function () {
|
||||
cb();
|
||||
});
|
||||
};
|
||||
|
||||
//console.log("starting");
|
||||
nThen(function (w) {
|
||||
// load database adaptors and configuration values into the environment
|
||||
prepareEnv(Env, w(function () {
|
||||
//console.log("env prepared");
|
||||
|
||||
}));
|
||||
}).nThen(function (w) {
|
||||
Eviction.archived(Env, w(function () {
|
||||
|
||||
}));
|
||||
});
|
@ -0,0 +1,139 @@
|
||||
var Messages = require("../www/common/translations/messages.json");
|
||||
var Exec = require("child_process").exec;
|
||||
|
||||
var ignoreLines = function (source, pattern) {
|
||||
if (!pattern.test(source)) { return source; }
|
||||
return source.split('\n')
|
||||
.map(function (line) {
|
||||
if (pattern.test(line)) { return ''; }
|
||||
return line;
|
||||
})
|
||||
.filter(Boolean)
|
||||
.join("\n");
|
||||
};
|
||||
|
||||
var GENERATED_PATTERNS = [
|
||||
/(admin|settings)_.*(Hint|Title|Button)/,
|
||||
/settings_colortheme/,
|
||||
/loading_(state|drive|pad)_/,
|
||||
/(admin|notifications|support|team|settings)_cat_/,
|
||||
/features_f/,
|
||||
];
|
||||
var isPossiblyGenerated = function (key) {
|
||||
return GENERATED_PATTERNS.some(function (patt) {
|
||||
return patt.test(key);
|
||||
});
|
||||
};
|
||||
|
||||
var grep = function (pattern, cb) {
|
||||
var exclude = [
|
||||
'www/common/translations/*',
|
||||
'www/common/onlyoffice/*',
|
||||
'www/lib/*',
|
||||
'www/common/pdfjs/*',
|
||||
'*.css',
|
||||
'www/common/highlight/*',
|
||||
'*.min.js',
|
||||
'.lesshintrc',
|
||||
'CHANGELOG.md',
|
||||
'LICENSE',
|
||||
'package*.json',
|
||||
'www/debug/chainpad.dist.js',
|
||||
'www/pad/mathjax/*',
|
||||
'www/common/hyperscript.js',
|
||||
'www/common/jscolor.js',
|
||||
'.//scripts/*',
|
||||
'./lib/*',
|
||||
'./docs/*',
|
||||
'./github/*',
|
||||
'*.svg',
|
||||
'*.md',
|
||||
'./config/*',
|
||||
].map(function (patt) {
|
||||
return "':(exclude)" + patt + "'";
|
||||
}).join(' ');
|
||||
|
||||
// grep this repository, ignoring binary files and excluding anything matching the above patterns
|
||||
//var ignoreBinaries= '--binary-files=without-match ';
|
||||
var command = 'git grep ' + pattern + " -- ':/' " + exclude;
|
||||
|
||||
Exec(command, function (err, stdout /*, stderr */) {
|
||||
if (err && err.code === 1 && err.killed === false) {
|
||||
if (isPossiblyGenerated(pattern)) {
|
||||
return cb(void 0, true, 'POSSIBLY_GENERATED');
|
||||
}
|
||||
return cb(void 0, true, "NOT_FOUND", stdout);
|
||||
}
|
||||
stdout = ignoreLines(stdout, /Binary file/);
|
||||
|
||||
if (err) {
|
||||
if (err.code === 'ERR_CHILD_PROCESS_STDIO_MAXBUFFER') {
|
||||
return cb(void 0, true, 'TOO_MUCH', stdout);
|
||||
}
|
||||
return void cb(err);
|
||||
}
|
||||
if (/data\-localization/.test(stdout)) {
|
||||
return cb(void 0, true, "DATA_LOCALIZATION", stdout);
|
||||
}
|
||||
if (/(Messages|Msg|messages)\./.test(stdout)) {
|
||||
return cb(void 0, false);
|
||||
}
|
||||
|
||||
//console.log(pattern, arguments);
|
||||
cb(void 0, true, 'OTHER', stdout);
|
||||
});
|
||||
};
|
||||
|
||||
var keys = Object.keys(Messages).sort();
|
||||
var total = keys.length;
|
||||
|
||||
var limit = total;
|
||||
|
||||
var lineCount = function (s) {
|
||||
var i = 0;
|
||||
s.replace(/\n/g, function () { i++; return ''; });
|
||||
return i;
|
||||
};
|
||||
|
||||
var conditionallyPrintContent = function (output) {
|
||||
if (!output) { return; }
|
||||
if (lineCount(output) < 12) {
|
||||
output.split('\n').map(function (line) {
|
||||
if (!line) { return; }
|
||||
console.log('\t> ' + line);
|
||||
});
|
||||
//console.log(output);
|
||||
console.log();
|
||||
} else {
|
||||
console.log("\t> too much content to print");
|
||||
}
|
||||
};
|
||||
|
||||
var next = function () {
|
||||
var key = keys[0];
|
||||
if (!key) { return; }
|
||||
keys.shift();
|
||||
|
||||
if (!limit) { return void console.log("[DONE]"); }
|
||||
limit--;
|
||||
|
||||
grep(key, function (err, flagged, reason, output) {
|
||||
if (err) {
|
||||
console.error("[%s]", key, err);
|
||||
console.log();
|
||||
return;
|
||||
} else if (!flagged) {
|
||||
|
||||
} else if (reason === 'OTHER') {
|
||||
console.log('[%s] flagged for [OTHER]', key);
|
||||
conditionallyPrintContent(output);
|
||||
} else {
|
||||
console.log("[%s] flagged for [%s]", key, reason || '???');
|
||||
conditionallyPrintContent(output);
|
||||
}
|
||||
|
||||
next();
|
||||
});
|
||||
};
|
||||
|
||||
next();
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue