@decaf-ts/fabric-weaver
Version:
template for ts projects
38 lines • 5.29 kB
JavaScript
import { writeFileYaml } from "../utils/yaml";
import { DockerRestartPolicy } from "./constants";
import fs from "fs";
import path from "path";
export function generateDockerComposeFile(config) {
console.log(config);
// Create Docker Compose JSON structure
const dockerCompose = {
services: {},
};
//Create organization CA's
for (const org of config.orgs) {
const caService = createCAService(config.global, org.organization);
Object.assign(dockerCompose.services, caService);
}
console.log(dockerCompose);
// Generate Docker Compose YAML file
const basePath = path.join(process.cwd(), "output");
if (!fs.existsSync(basePath))
fs.mkdirSync(basePath, { recursive: true });
writeFileYaml(path.join(process.cwd(), "output", "docker-compose.yaml"), dockerCompose);
}
export function createCAService(cfg, org) {
return createBaseDockerService(org.name + "-ca", cfg.image);
}
export function createBaseDockerService(name, image) {
const service = {
[name]: {
container_name: name,
hostname: name,
restart: DockerRestartPolicy.UNLESS_STOPPED,
image: image,
command: "tail -f /dev/null",
},
};
return service;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyLWNvbXBvc2UtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RvY2tlci9kb2NrZXItY29tcG9zZS1nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEQsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUV4QixNQUFNLFVBQVUseUJBQXlCLENBQUMsTUFBb0I7SUFDNUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVwQix1Q0FBdUM7SUFDdkMsTUFBTSxhQUFhLEdBQWtCO1FBQ25DLFFBQVEsRUFBRSxFQUFFO0tBQ2IsQ0FBQztJQUVGLDBCQUEwQjtJQUMxQixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QixNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRTNCLG9DQUFvQztJQUNwQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVwRCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRTFFLGFBQWEsQ0FDWCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUscUJBQXFCLENBQUMsRUFDekQsYUFBYSxDQUNkLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUF1QixFQUFFLEdBQW9CO0lBQzNFLE9BQU8sdUJBQXVCLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLElBQVksRUFDWixLQUFhO0lBRWIsTUFBTSxPQUFPLEdBQWtCO1FBQzdCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDTixjQUFjLEVBQUUsSUFBSTtZQUNwQixRQUFRLEVBQUUsSUFBSTtZQUNkLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxjQUFjO1lBQzNDLEtBQUssRUFBRSxLQUFLO1lBQ1osT0FBTyxFQUFFLG1CQUFtQjtTQUM3QjtLQUNGLENBQUM7SUFFRixPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgV2VhdmVyQ29uZmlnLFxuICBXZWF2ZXJHbG9iYWxDb25maWcsXG4gIFdlYXZlck9yZ0NvbmZpZyxcbn0gZnJvbSBcIi4uL2NvcmUvaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHsgd3JpdGVGaWxlWWFtbCB9IGZyb20gXCIuLi91dGlscy95YW1sXCI7XG5pbXBvcnQgeyBEb2NrZXJSZXN0YXJ0UG9saWN5IH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBEb2NrZXJDb21wb3NlLCBEb2NrZXJTZXJ2aWNlIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZURvY2tlckNvbXBvc2VGaWxlKGNvbmZpZzogV2VhdmVyQ29uZmlnKSB7XG4gIGNvbnNvbGUubG9nKGNvbmZpZyk7XG5cbiAgLy8gQ3JlYXRlIERvY2tlciBDb21wb3NlIEpTT04gc3RydWN0dXJlXG4gIGNvbnN0IGRvY2tlckNvbXBvc2U6IERvY2tlckNvbXBvc2UgPSB7XG4gICAgc2VydmljZXM6IHt9LFxuICB9O1xuXG4gIC8vQ3JlYXRlIG9yZ2FuaXphdGlvbiBDQSdzXG4gIGZvciAoY29uc3Qgb3JnIG9mIGNvbmZpZy5vcmdzKSB7XG4gICAgY29uc3QgY2FTZXJ2aWNlID0gY3JlYXRlQ0FTZXJ2aWNlKGNvbmZpZy5nbG9iYWwsIG9yZy5vcmdhbml6YXRpb24pO1xuICAgIE9iamVjdC5hc3NpZ24oZG9ja2VyQ29tcG9zZS5zZXJ2aWNlcywgY2FTZXJ2aWNlKTtcbiAgfVxuXG4gIGNvbnNvbGUubG9nKGRvY2tlckNvbXBvc2UpO1xuXG4gIC8vIEdlbmVyYXRlIERvY2tlciBDb21wb3NlIFlBTUwgZmlsZVxuICBjb25zdCBiYXNlUGF0aCA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcIm91dHB1dFwiKTtcblxuICBpZiAoIWZzLmV4aXN0c1N5bmMoYmFzZVBhdGgpKSBmcy5ta2RpclN5bmMoYmFzZVBhdGgsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gIHdyaXRlRmlsZVlhbWwoXG4gICAgcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwib3V0cHV0XCIsIFwiZG9ja2VyLWNvbXBvc2UueWFtbFwiKSxcbiAgICBkb2NrZXJDb21wb3NlXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDQVNlcnZpY2UoY2ZnOiBXZWF2ZXJHbG9iYWxDb25maWcsIG9yZzogV2VhdmVyT3JnQ29uZmlnKSB7XG4gIHJldHVybiBjcmVhdGVCYXNlRG9ja2VyU2VydmljZShvcmcubmFtZSArIFwiLWNhXCIsIGNmZy5pbWFnZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCYXNlRG9ja2VyU2VydmljZShcbiAgbmFtZTogc3RyaW5nLFxuICBpbWFnZTogc3RyaW5nXG4pOiBEb2NrZXJTZXJ2aWNlIHtcbiAgY29uc3Qgc2VydmljZTogRG9ja2VyU2VydmljZSA9IHtcbiAgICBbbmFtZV06IHtcbiAgICAgIGNvbnRhaW5lcl9uYW1lOiBuYW1lLFxuICAgICAgaG9zdG5hbWU6IG5hbWUsXG4gICAgICByZXN0YXJ0OiBEb2NrZXJSZXN0YXJ0UG9saWN5LlVOTEVTU19TVE9QUEVELFxuICAgICAgaW1hZ2U6IGltYWdlLFxuICAgICAgY29tbWFuZDogXCJ0YWlsIC1mIC9kZXYvbnVsbFwiLFxuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIHNlcnZpY2U7XG59XG4iXX0=