UNPKG

aws-cdk

Version:

CDK Toolkit, the command line tool for CDK apps

51 lines 6.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.rootDir = exports.cdkCacheDir = exports.cdkHomeDir = void 0; const fs = require("fs"); const os = require("os"); const path = require("path"); /** * 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 { home = path.join((os.userInfo().homedir ?? os.homedir()).trim(), '.cdk'); } catch { } return process.env.CDK_HOME ? path.resolve(process.env.CDK_HOME) : home || fs.mkdtempSync(path.join(tmpDir, '.cdk')).trim(); } exports.cdkHomeDir = cdkHomeDir; function cdkCacheDir() { return path.join(cdkHomeDir(), 'cache'); } exports.cdkCacheDir = cdkCacheDir; 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('Unable to find package manifest'); } return undefined; } return _rootDir(path.dirname(dirname)); } return _rootDir(__dirname); } exports.rootDir = rootDir; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0b3JpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaXJlY3Rvcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUU3Qjs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0IsVUFBVTtJQUN4QixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLElBQUksSUFBSSxDQUFDO0lBQ1QsSUFBSTtRQUNGLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztLQUMxRTtJQUFDLE1BQU0sR0FBRTtJQUNWLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRO1FBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQy9ELENBQUM7QUFURCxnQ0FTQztBQUVELFNBQWdCLFdBQVc7SUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFGRCxrQ0FFQztBQVlELFNBQWdCLE9BQU8sQ0FBQyxJQUFjO0lBQ3BDLFNBQVMsUUFBUSxDQUFDLE9BQWU7UUFDL0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDeEQsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQy9CLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLE9BQU8sRUFBRTtZQUNyQyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7Z0JBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQzthQUNwRDtZQUNELE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBaEJELDBCQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5cbi8qKlxuICogUmV0dXJuIGEgbG9jYXRpb24gdGhhdCB3aWxsIGJlIHVzZWQgYXMgdGhlIENESyBob21lIGRpcmVjdG9yeS5cbiAqIEN1cnJlbnRseSB0aGUgb25seSB0aGluZyB0aGF0IGlzIHBsYWNlZCBoZXJlIGlzIHRoZSBjYWNoZS5cbiAqXG4gKiBGaXJzdCB0cnkgdG8gdXNlIHRoZSB1c2VycyBob21lIGRpcmVjdG9yeSAoaS5lLiAvaG9tZS9zb21ldXNlci8pLFxuICogYnV0IGlmIHRoYXQgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0IGZvciBzb21lIHJlYXNvbiBjcmVhdGUgYSB0bXAgZGlyZWN0b3J5LlxuICpcbiAqIFR5cGljYWxseSBpdCB3b3VsZG4ndCBtYWtlIHNlbnNlIHRvIGNyZWF0ZSBhIG9uZSB0aW1lIHVzZSB0bXAgZGlyZWN0b3J5IGZvclxuICogdGhlIHB1cnBvc2Ugb2YgY3JlYXRpbmcgYSBjYWNoZSwgYnV0IHNpbmNlIHRoaXMgb25seSBhcHBsaWVzIHRvIHVzZXJzIHRoYXQgZG9cbiAqIG5vdCBoYXZlIGEgaG9tZSBkaXJlY3RvcnkgKHNvbWUgQ0kgc3lzdGVtcz8pIHRoaXMgc2hvdWxkIGJlIGZpbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjZGtIb21lRGlyKCkge1xuICBjb25zdCB0bXBEaXIgPSBmcy5yZWFscGF0aFN5bmMob3MudG1wZGlyKCkpO1xuICBsZXQgaG9tZTtcbiAgdHJ5IHtcbiAgICBob21lID0gcGF0aC5qb2luKChvcy51c2VySW5mbygpLmhvbWVkaXIgPz8gb3MuaG9tZWRpcigpKS50cmltKCksICcuY2RrJyk7XG4gIH0gY2F0Y2gge31cbiAgcmV0dXJuIHByb2Nlc3MuZW52LkNES19IT01FXG4gICAgPyBwYXRoLnJlc29sdmUocHJvY2Vzcy5lbnYuQ0RLX0hPTUUpXG4gICAgOiBob21lIHx8IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbih0bXBEaXIsICcuY2RrJykpLnRyaW0oKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNka0NhY2hlRGlyKCkge1xuICByZXR1cm4gcGF0aC5qb2luKGNka0hvbWVEaXIoKSwgJ2NhY2hlJyk7XG59XG5cbi8qKlxuICogRnJvbSB0aGUgY3VycmVudCBmaWxlLCBmaW5kIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0aGUgQ0xJJ3MgcGFja2FnZS5qc29uXG4gKlxuICogQ2FuJ3QgdXNlIGBfX2Rpcm5hbWVgIGluIHByb2R1Y3Rpb24gY29kZSwgYXMgdGhlIENMSSB3aWxsIGdldCBidW5kbGVkIGFzIGl0J3NcbiAqIHJlbGVhc2VkIGFuZCBgX19kaXJuYW1lYCB3aWxsIHJlZmVyIHRvIGEgZGlmZmVyZW50IGxvY2F0aW9uIGluIHRoZSBgLnRzYCBmb3JtXG4gKiBhcyBpdCB3aWxsIGluIHRoZSBmaW5hbCBleGVjdXRpbmcgZm9ybS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvb3REaXIoKTogc3RyaW5nO1xuZXhwb3J0IGZ1bmN0aW9uIHJvb3REaXIoZmFpbDogdHJ1ZSk6IHN0cmluZztcbmV4cG9ydCBmdW5jdGlvbiByb290RGlyKGZhaWw6IGZhbHNlKTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuZXhwb3J0IGZ1bmN0aW9uIHJvb3REaXIoZmFpbD86IGJvb2xlYW4pIHtcbiAgZnVuY3Rpb24gX3Jvb3REaXIoZGlybmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtYW5pZmVzdFBhdGggPSBwYXRoLmpvaW4oZGlybmFtZSwgJ3BhY2thZ2UuanNvbicpO1xuICAgIGlmIChmcy5leGlzdHNTeW5jKG1hbmlmZXN0UGF0aCkpIHtcbiAgICAgIHJldHVybiBkaXJuYW1lO1xuICAgIH1cbiAgICBpZiAocGF0aC5kaXJuYW1lKGRpcm5hbWUpID09PSBkaXJuYW1lKSB7XG4gICAgICBpZiAoZmFpbCA/PyB0cnVlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIGZpbmQgcGFja2FnZSBtYW5pZmVzdCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIF9yb290RGlyKHBhdGguZGlybmFtZShkaXJuYW1lKSk7XG4gIH1cblxuICByZXR1cm4gX3Jvb3REaXIoX19kaXJuYW1lKTtcbn1cbiJdfQ==