UNPKG

aws-cdk

Version:

CDK Toolkit, the command line tool for CDK apps

57 lines 7.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cdkHomeDir = cdkHomeDir; exports.cdkCacheDir = cdkCacheDir; exports.rootDir = rootDir; const fs = require("fs"); const os = require("os"); const path = require("path"); const error_1 = require("../toolkit/error"); /** * Return a location that will be used as the CDK home directory. * Currently the only thing that is placed here is the cache. * * First try to use the users home directory (i.e. /home/someuser/), * but if that directory does not exist for some reason create a tmp directory. * * Typically it wouldn't make sense to create a one time use tmp directory for * the purpose of creating a cache, but since this only applies to users that do * not have a home directory (some CI systems?) this should be fine. */ function cdkHomeDir() { const tmpDir = fs.realpathSync(os.tmpdir()); let home; try { let userInfoHome = os.userInfo().homedir; // Node returns this if the user doesn't have a home directory /* istanbul ignore if: will not happen in normal setups */ if (userInfoHome == '/var/empty') { userInfoHome = undefined; } home = path.join((userInfoHome ?? os.homedir()).trim(), '.cdk'); } catch { } return process.env.CDK_HOME ? path.resolve(process.env.CDK_HOME) : home || fs.mkdtempSync(path.join(tmpDir, '.cdk')).trim(); } function cdkCacheDir() { return path.join(cdkHomeDir(), 'cache'); } function rootDir(fail) { function _rootDir(dirname) { const manifestPath = path.join(dirname, 'package.json'); if (fs.existsSync(manifestPath)) { return dirname; } if (path.dirname(dirname) === dirname) { if (fail ?? true) { throw new error_1.ToolkitError('Unable to find package manifest'); } return undefined; } return _rootDir(path.dirname(dirname)); } return _rootDir(__dirname); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0b3JpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaXJlY3Rvcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWdCQSxnQ0FlQztBQUVELGtDQUVDO0FBWUQsMEJBZ0JDO0FBL0RELHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDRDQUFnRDtBQUVoRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0IsVUFBVTtJQUN4QixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLElBQUksSUFBSSxDQUFDO0lBQ1QsSUFBSSxDQUFDO1FBQ0gsSUFBSSxZQUFZLEdBQXVCLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUM7UUFDN0QsOERBQThEO1FBQzlELDBEQUEwRDtRQUMxRCxJQUFJLFlBQVksSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQztJQUNWLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRO1FBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQy9ELENBQUM7QUFFRCxTQUFnQixXQUFXO0lBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBWUQsU0FBZ0IsT0FBTyxDQUFDLElBQWM7SUFDcEMsU0FBUyxRQUFRLENBQUMsT0FBZTtRQUMvQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN4RCxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ3RDLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNqQixNQUFNLElBQUksb0JBQVksQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBQzVELENBQUM7WUFDRCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uL3Rvb2xraXQvZXJyb3InO1xuXG4vKipcbiAqIFJldHVybiBhIGxvY2F0aW9uIHRoYXQgd2lsbCBiZSB1c2VkIGFzIHRoZSBDREsgaG9tZSBkaXJlY3RvcnkuXG4gKiBDdXJyZW50bHkgdGhlIG9ubHkgdGhpbmcgdGhhdCBpcyBwbGFjZWQgaGVyZSBpcyB0aGUgY2FjaGUuXG4gKlxuICogRmlyc3QgdHJ5IHRvIHVzZSB0aGUgdXNlcnMgaG9tZSBkaXJlY3RvcnkgKGkuZS4gL2hvbWUvc29tZXVzZXIvKSxcbiAqIGJ1dCBpZiB0aGF0IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdCBmb3Igc29tZSByZWFzb24gY3JlYXRlIGEgdG1wIGRpcmVjdG9yeS5cbiAqXG4gKiBUeXBpY2FsbHkgaXQgd291bGRuJ3QgbWFrZSBzZW5zZSB0byBjcmVhdGUgYSBvbmUgdGltZSB1c2UgdG1wIGRpcmVjdG9yeSBmb3JcbiAqIHRoZSBwdXJwb3NlIG9mIGNyZWF0aW5nIGEgY2FjaGUsIGJ1dCBzaW5jZSB0aGlzIG9ubHkgYXBwbGllcyB0byB1c2VycyB0aGF0IGRvXG4gKiBub3QgaGF2ZSBhIGhvbWUgZGlyZWN0b3J5IChzb21lIENJIHN5c3RlbXM/KSB0aGlzIHNob3VsZCBiZSBmaW5lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2RrSG9tZURpcigpIHtcbiAgY29uc3QgdG1wRGlyID0gZnMucmVhbHBhdGhTeW5jKG9zLnRtcGRpcigpKTtcbiAgbGV0IGhvbWU7XG4gIHRyeSB7XG4gICAgbGV0IHVzZXJJbmZvSG9tZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gb3MudXNlckluZm8oKS5ob21lZGlyO1xuICAgIC8vIE5vZGUgcmV0dXJucyB0aGlzIGlmIHRoZSB1c2VyIGRvZXNuJ3QgaGF2ZSBhIGhvbWUgZGlyZWN0b3J5XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmOiB3aWxsIG5vdCBoYXBwZW4gaW4gbm9ybWFsIHNldHVwcyAqL1xuICAgIGlmICh1c2VySW5mb0hvbWUgPT0gJy92YXIvZW1wdHknKSB7XG4gICAgICB1c2VySW5mb0hvbWUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGhvbWUgPSBwYXRoLmpvaW4oKHVzZXJJbmZvSG9tZSA/PyBvcy5ob21lZGlyKCkpLnRyaW0oKSwgJy5jZGsnKTtcbiAgfSBjYXRjaCB7fVxuICByZXR1cm4gcHJvY2Vzcy5lbnYuQ0RLX0hPTUVcbiAgICA/IHBhdGgucmVzb2x2ZShwcm9jZXNzLmVudi5DREtfSE9NRSlcbiAgICA6IGhvbWUgfHwgZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKHRtcERpciwgJy5jZGsnKSkudHJpbSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2RrQ2FjaGVEaXIoKSB7XG4gIHJldHVybiBwYXRoLmpvaW4oY2RrSG9tZURpcigpLCAnY2FjaGUnKTtcbn1cblxuLyoqXG4gKiBGcm9tIHRoZSBjdXJyZW50IGZpbGUsIGZpbmQgdGhlIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRoZSBDTEkncyBwYWNrYWdlLmpzb25cbiAqXG4gKiBDYW4ndCB1c2UgYF9fZGlybmFtZWAgaW4gcHJvZHVjdGlvbiBjb2RlLCBhcyB0aGUgQ0xJIHdpbGwgZ2V0IGJ1bmRsZWQgYXMgaXQnc1xuICogcmVsZWFzZWQgYW5kIGBfX2Rpcm5hbWVgIHdpbGwgcmVmZXIgdG8gYSBkaWZmZXJlbnQgbG9jYXRpb24gaW4gdGhlIGAudHNgIGZvcm1cbiAqIGFzIGl0IHdpbGwgaW4gdGhlIGZpbmFsIGV4ZWN1dGluZyBmb3JtLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcm9vdERpcigpOiBzdHJpbmc7XG5leHBvcnQgZnVuY3Rpb24gcm9vdERpcihmYWlsOiB0cnVlKTogc3RyaW5nO1xuZXhwb3J0IGZ1bmN0aW9uIHJvb3REaXIoZmFpbDogZmFsc2UpOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5leHBvcnQgZnVuY3Rpb24gcm9vdERpcihmYWlsPzogYm9vbGVhbikge1xuICBmdW5jdGlvbiBfcm9vdERpcihkaXJuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG1hbmlmZXN0UGF0aCA9IHBhdGguam9pbihkaXJuYW1lLCAncGFja2FnZS5qc29uJyk7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMobWFuaWZlc3RQYXRoKSkge1xuICAgICAgcmV0dXJuIGRpcm5hbWU7XG4gICAgfVxuICAgIGlmIChwYXRoLmRpcm5hbWUoZGlybmFtZSkgPT09IGRpcm5hbWUpIHtcbiAgICAgIGlmIChmYWlsID8/IHRydWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignVW5hYmxlIHRvIGZpbmQgcGFja2FnZSBtYW5pZmVzdCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIF9yb290RGlyKHBhdGguZGlybmFtZShkaXJuYW1lKSk7XG4gIH1cblxuICByZXR1cm4gX3Jvb3REaXIoX19kaXJuYW1lKTtcbn1cbiJdfQ==