aws-cdk
Version:
CDK Toolkit, the command line tool for CDK apps
46 lines • 5.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isVersionBetween = exports.checkForPlatformWarnings = void 0;
const os = require("os");
const fs = require("fs-extra");
const logging = require("./logging");
async function checkForPlatformWarnings() {
if (await hasDockerCopyBug()) {
logging.warning('`cdk synth` may hang in Docker on Linux 5.6-5.10. See https://github.com/aws/aws-cdk/issues/21379 for workarounds.');
}
}
exports.checkForPlatformWarnings = checkForPlatformWarnings;
async function hasDockerCopyBug() {
return await runningInDocker() && os.platform() === 'linux' && isVersionBetween(os.release(), '5.6', '5.10');
}
async function runningInDocker() {
return fs.pathExists('/.dockerenv');
}
function isVersionBetween(version, lower, upper) {
const ver = splitVersion(version);
const lo = splitVersion(lower);
const up = splitVersion(upper);
while (lo.length < ver.length) {
lo.push(0);
}
while (up.length < ver.length) {
up.push(9999999);
}
let n = ver.length;
for (let i = 0; i < n; i++) {
if (lo[i] < ver[i] && ver[i] < up[i]) {
return true;
}
if (lo[i] > ver[i] || ver[i] > up[i]) {
return false;
}
}
return false;
}
exports.isVersionBetween = isVersionBetween;
function splitVersion(version) {
return `${version}`.split('.')
.map(x => parseInt(x, 10))
.map(x => isNaN(x) ? 0 : x);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0td2FybmluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwbGF0Zm9ybS13YXJuaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsK0JBQStCO0FBQy9CLHFDQUFxQztBQUU5QixLQUFLLFVBQVUsd0JBQXdCO0lBQzVDLElBQUksTUFBTSxnQkFBZ0IsRUFBRSxFQUFFO1FBQzVCLE9BQU8sQ0FBQyxPQUFPLENBQUMsb0hBQW9ILENBQUMsQ0FBQztLQUN2STtBQUNILENBQUM7QUFKRCw0REFJQztBQUVELEtBQUssVUFBVSxnQkFBZ0I7SUFDN0IsT0FBTyxNQUFNLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxPQUFPLElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMvRyxDQUFDO0FBRUQsS0FBSyxVQUFVLGVBQWU7SUFDNUIsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUFlLEVBQUUsS0FBYSxFQUFFLEtBQWE7SUFDNUUsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sRUFBRSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixNQUFNLEVBQUUsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFL0IsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUU7UUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQUU7SUFDOUMsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUU7UUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQUU7SUFFcEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUNuQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzFCLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7U0FBRTtRQUN0RCxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUFFLE9BQU8sS0FBSyxDQUFDO1NBQUU7S0FDeEQ7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUVmLENBQUM7QUFoQkQsNENBZ0JDO0FBRUQsU0FBUyxZQUFZLENBQUMsT0FBZTtJQUNuQyxPQUFPLEdBQUcsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUMzQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3pCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgbG9nZ2luZyBmcm9tICcuL2xvZ2dpbmcnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tGb3JQbGF0Zm9ybVdhcm5pbmdzKCkge1xuICBpZiAoYXdhaXQgaGFzRG9ja2VyQ29weUJ1ZygpKSB7XG4gICAgbG9nZ2luZy53YXJuaW5nKCdgY2RrIHN5bnRoYCBtYXkgaGFuZyBpbiBEb2NrZXIgb24gTGludXggNS42LTUuMTAuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzIxMzc5IGZvciB3b3JrYXJvdW5kcy4nKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBoYXNEb2NrZXJDb3B5QnVnKCkge1xuICByZXR1cm4gYXdhaXQgcnVubmluZ0luRG9ja2VyKCkgJiYgb3MucGxhdGZvcm0oKSA9PT0gJ2xpbnV4JyAmJiBpc1ZlcnNpb25CZXR3ZWVuKG9zLnJlbGVhc2UoKSwgJzUuNicsICc1LjEwJyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJ1bm5pbmdJbkRvY2tlcigpIHtcbiAgcmV0dXJuIGZzLnBhdGhFeGlzdHMoJy8uZG9ja2VyZW52Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZlcnNpb25CZXR3ZWVuKHZlcnNpb246IHN0cmluZywgbG93ZXI6IHN0cmluZywgdXBwZXI6IHN0cmluZykge1xuICBjb25zdCB2ZXIgPSBzcGxpdFZlcnNpb24odmVyc2lvbik7XG4gIGNvbnN0IGxvID0gc3BsaXRWZXJzaW9uKGxvd2VyKTtcbiAgY29uc3QgdXAgPSBzcGxpdFZlcnNpb24odXBwZXIpO1xuXG4gIHdoaWxlIChsby5sZW5ndGggPCB2ZXIubGVuZ3RoKSB7IGxvLnB1c2goMCk7IH1cbiAgd2hpbGUgKHVwLmxlbmd0aCA8IHZlci5sZW5ndGgpIHsgdXAucHVzaCg5OTk5OTk5KTsgfVxuXG4gIGxldCBuID0gdmVyLmxlbmd0aDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHtcbiAgICBpZiAobG9baV0gPCB2ZXJbaV0gJiYgdmVyW2ldIDwgdXBbaV0pIHsgcmV0dXJuIHRydWU7IH1cbiAgICBpZiAobG9baV0gPiB2ZXJbaV0gfHwgdmVyW2ldID4gdXBbaV0pIHsgcmV0dXJuIGZhbHNlOyB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG5cbn1cblxuZnVuY3Rpb24gc3BsaXRWZXJzaW9uKHZlcnNpb246IHN0cmluZyk6IG51bWJlcltdIHtcbiAgcmV0dXJuIGAke3ZlcnNpb259YC5zcGxpdCgnLicpXG4gICAgLm1hcCh4ID0+IHBhcnNlSW50KHgsIDEwKSlcbiAgICAubWFwKHggPT4gaXNOYU4oeCkgPyAwIDogeCk7XG59XG4iXX0=