limgen
Version:
Infrastructure as Code generator
84 lines (83 loc) • 3.22 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.renderIndex = exports.envPull = exports.collectInput = exports.inputs = exports.dependsOn = void 0;
const ejs_1 = __importDefault(require("ejs"));
const path_1 = __importDefault(require("path"));
const promises_1 = __importDefault(require("fs/promises"));
const files_1 = require("../../files");
const dependsOn = (opts) => __awaiter(void 0, void 0, void 0, function* () {
const files = [
'components/app-azure-acs.ts',
'utils/prefixed.ts',
];
const packages = [
'@pulumi/azure-native',
'@pulumi/pulumi',
'@pulumi/docker',
'@pulumi/docker-build',
];
return {
files,
packages,
};
});
exports.dependsOn = dependsOn;
const inputs = () => __awaiter(void 0, void 0, void 0, function* () {
return [];
});
exports.inputs = inputs;
const collectInput = (cmdArgs, projectArgs) => __awaiter(void 0, void 0, void 0, function* () {
return {};
});
exports.collectInput = collectInput;
const envPull = ({ projectName, stack, }) => __awaiter(void 0, void 0, void 0, function* () {
throw new Error('Not implemented');
});
exports.envPull = envPull;
function fullstackAWSProject(inputs) {
return __awaiter(this, void 0, void 0, function* () {
const [indexContents] = yield Promise.all([
(0, exports.renderIndex)(inputs),
updateDockerignore(),
]);
return indexContents;
});
}
exports.default = fullstackAWSProject;
const updateDockerignore = () => __awaiter(void 0, void 0, void 0, function* () {
if (yield (0, files_1.fileExists)('.dockerignore')) {
// see if infrastructure is already in the .dockerignore file
const dockerignore = yield promises_1.default.readFile('.dockerignore', 'utf-8');
if (!dockerignore.includes('infrastructure')) {
yield promises_1.default.appendFile('.dockerignore', '\ninfrastructure\n');
}
}
else {
yield promises_1.default.writeFile('.dockerignore', `
Dockerfile
.dockerignore
node_modules
npm-debug.log
README.md
.next
.git
.env*
infrastructure/`.trim());
}
});
const renderIndex = (inputs) => __awaiter(void 0, void 0, void 0, function* () {
return ejs_1.default.renderFile(path_1.default.join(__dirname, 'index.ejs.t'), inputs);
});
exports.renderIndex = renderIndex;