UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

80 lines 9.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.rmFile = rmFile; exports.addToFile = addToFile; exports.writeFile = writeFile; exports.copyDirectoryContents = copyDirectoryContents; exports.findUp = findUp; exports.homeDir = homeDir; exports.loadLines = loadLines; exports.writeLines = writeLines; exports.updateIniKey = updateIniKey; const os = require("os"); const path = require("path"); const fs = require("fs-extra"); async function rmFile(filename) { if (await fs.pathExists(filename)) { await fs.unlink(filename); } } async function addToFile(filename, line) { let contents = await fs.pathExists(filename) ? await fs.readFile(filename, { encoding: 'utf-8' }) : ''; if (!contents.endsWith('\n')) { contents += '\n'; } contents += line + '\n'; await writeFile(filename, contents); } async function writeFile(filename, contents) { await fs.mkdirp(path.dirname(filename)); await fs.writeFile(filename, contents, { encoding: 'utf-8' }); } async function copyDirectoryContents(dir, target) { for (const file of await fs.readdir(path.join(dir), { encoding: 'utf-8' })) { await fs.copyFile(path.join(dir, file), path.join(target, file)); } } function findUp(name, directory = process.cwd()) { const absoluteDirectory = path.resolve(directory); const file = path.join(directory, name); if (fs.existsSync(file)) { return file; } const { root } = path.parse(absoluteDirectory); if (absoluteDirectory == root) { return undefined; } return findUp(name, path.dirname(absoluteDirectory)); } /** * Docker-safe home directory */ function homeDir() { var _a; return (_a = os.userInfo().homedir) !== null && _a !== void 0 ? _a : os.homedir(); } async function loadLines(filename) { return await fs.pathExists(filename) ? (await fs.readFile(filename, { encoding: 'utf-8' })).trim().split('\n') : []; } async function writeLines(filename, lines) { // Must end in a newline or our bash script won't read it properly await fs.writeFile(filename, lines.join('\n') + '\n', { encoding: 'utf-8' }); } /** * Update a spaceless ini file in place */ function updateIniKey(lines, key, value) { const prefix = `${key}=`; let found = false; for (let i = 0; i < lines.length; i++) { if (lines[i].startsWith(prefix)) { lines[i] = prefix + value; found = true; break; } } if (!found) { lines.push(prefix + value); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLHdCQUlDO0FBRUQsOEJBUUM7QUFFRCw4QkFHQztBQUVELHNEQUlDO0FBRUQsd0JBY0M7QUFLRCwwQkFFQztBQUVELDhCQUVDO0FBRUQsZ0NBR0M7QUFLRCxvQ0FhQztBQS9FRCx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUV4QixLQUFLLFVBQVUsTUFBTSxDQUFDLFFBQWdCO0lBQzNDLElBQUksTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDbEMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVCLENBQUM7QUFDSCxDQUFDO0FBRU0sS0FBSyxVQUFVLFNBQVMsQ0FBQyxRQUFnQixFQUFFLElBQVk7SUFDNUQsSUFBSSxRQUFRLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN2RyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzdCLFFBQVEsSUFBSSxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUNELFFBQVEsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBRXhCLE1BQU0sU0FBUyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRU0sS0FBSyxVQUFVLFNBQVMsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO0lBQ2hFLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDeEMsTUFBTSxF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LENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcm1GaWxlKGZpbGVuYW1lOiBzdHJpbmcpIHtcbiAgaWYgKGF3YWl0IGZzLnBhdGhFeGlzdHMoZmlsZW5hbWUpKSB7XG4gICAgYXdhaXQgZnMudW5saW5rKGZpbGVuYW1lKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkVG9GaWxlKGZpbGVuYW1lOiBzdHJpbmcsIGxpbmU6IHN0cmluZykge1xuICBsZXQgY29udGVudHMgPSBhd2FpdCBmcy5wYXRoRXhpc3RzKGZpbGVuYW1lKSA/IGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVuYW1lLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pIDogJyc7XG4gIGlmICghY29udGVudHMuZW5kc1dpdGgoJ1xcbicpKSB7XG4gICAgY29udGVudHMgKz0gJ1xcbic7XG4gIH1cbiAgY29udGVudHMgKz0gbGluZSArICdcXG4nO1xuXG4gIGF3YWl0IHdyaXRlRmlsZShmaWxlbmFtZSwgY29udGVudHMpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVGaWxlKGZpbGVuYW1lOiBzdHJpbmcsIGNvbnRlbnRzOiBzdHJpbmcpIHtcbiAgYXdhaXQgZnMubWtkaXJwKHBhdGguZGlybmFtZShmaWxlbmFtZSkpO1xuICBhd2FpdCBmcy53cml0ZUZpbGUoZmlsZW5hbWUsIGNvbnRlbnRzLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29weURpcmVjdG9yeUNvbnRlbnRzKGRpcjogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZykge1xuICBmb3IgKGNvbnN0IGZpbGUgb2YgYXdhaXQgZnMucmVhZGRpcihwYXRoLmpvaW4oZGlyKSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KSkge1xuICAgIGF3YWl0IGZzLmNvcHlGaWxlKHBhdGguam9pbihkaXIsIGZpbGUpLCBwYXRoLmpvaW4odGFyZ2V0LCBmaWxlKSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRVcChuYW1lOiBzdHJpbmcsIGRpcmVjdG9yeTogc3RyaW5nID0gcHJvY2Vzcy5jd2QoKSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGFic29sdXRlRGlyZWN0b3J5ID0gcGF0aC5yZXNvbHZlKGRpcmVjdG9yeSk7XG5cbiAgY29uc3QgZmlsZSA9IHBhdGguam9pbihkaXJlY3RvcnksIG5hbWUpO1xuICBpZiAoZnMuZXhpc3RzU3luYyhmaWxlKSkge1xuICAgIHJldHVybiBmaWxlO1xuICB9XG5cbiAgY29uc3QgeyByb290IH0gPSBwYXRoLnBhcnNlKGFic29sdXRlRGlyZWN0b3J5KTtcbiAgaWYgKGFic29sdXRlRGlyZWN0b3J5ID09IHJvb3QpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIGZpbmRVcChuYW1lLCBwYXRoLmRpcm5hbWUoYWJzb2x1dGVEaXJlY3RvcnkpKTtcbn1cblxuLyoqXG4gKiBEb2NrZXItc2FmZSBob21lIGRpcmVjdG9yeVxuICovXG5leHBvcnQgZnVuY3Rpb24gaG9tZURpcigpIHtcbiAgcmV0dXJuIG9zLnVzZXJJbmZvKCkuaG9tZWRpciA/PyBvcy5ob21lZGlyKCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkTGluZXMoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgcmV0dXJuIGF3YWl0IGZzLnBhdGhFeGlzdHMoZmlsZW5hbWUpID8gKGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVuYW1lLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pKS50cmltKCkuc3BsaXQoJ1xcbicpIDogW107XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZUxpbmVzKGZpbGVuYW1lOiBzdHJpbmcsIGxpbmVzOiBzdHJpbmdbXSkge1xuICAvLyBNdXN0IGVuZCBpbiBhIG5ld2xpbmUgb3Igb3VyIGJhc2ggc2NyaXB0IHdvbid0IHJlYWQgaXQgcHJvcGVybHlcbiAgYXdhaXQgZnMud3JpdGVGaWxlKGZpbGVuYW1lLCBsaW5lcy5qb2luKCdcXG4nKSArICdcXG4nLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pO1xufVxuXG4vKipcbiAqIFVwZGF0ZSBhIHNwYWNlbGVzcyBpbmkgZmlsZSBpbiBwbGFjZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlSW5pS2V5KGxpbmVzOiBzdHJpbmdbXSwga2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgY29uc3QgcHJlZml4ID0gYCR7a2V5fT1gO1xuICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChsaW5lc1tpXS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgIGxpbmVzW2ldID0gcHJlZml4ICsgdmFsdWU7XG4gICAgICBmb3VuZCA9IHRydWU7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKCFmb3VuZCkge1xuICAgIGxpbmVzLnB1c2gocHJlZml4ICsgdmFsdWUpO1xuICB9XG59XG4iXX0=