snyk-docker-plugin
Version:
Snyk CLI docker plugin
41 lines • 2.31 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.updateDockerfileBaseImageName = exports.getDockerfileBaseImageName = exports.getPackagesFromDockerfile = exports.instructionDigest = exports.readDockerfileAndAnalyse = exports.analyseDockerfile = void 0;
const dockerfile_ast_1 = require("dockerfile-ast");
const fs = require("fs");
const path_1 = require("path");
const instruction_parser_1 = require("./instruction-parser");
Object.defineProperty(exports, "getDockerfileBaseImageName", { enumerable: true, get: function () { return instruction_parser_1.getDockerfileBaseImageName; } });
Object.defineProperty(exports, "getPackagesFromDockerfile", { enumerable: true, get: function () { return instruction_parser_1.getPackagesFromDockerfile; } });
Object.defineProperty(exports, "instructionDigest", { enumerable: true, get: function () { return instruction_parser_1.instructionDigest; } });
const instruction_updater_1 = require("./instruction-updater");
Object.defineProperty(exports, "updateDockerfileBaseImageName", { enumerable: true, get: function () { return instruction_updater_1.updateDockerfileBaseImageName; } });
async function readDockerfileAndAnalyse(dockerfilePath) {
if (!dockerfilePath) {
return undefined;
}
const contents = await readFile((0, path_1.normalize)(dockerfilePath));
return analyseDockerfile(contents);
}
exports.readDockerfileAndAnalyse = readDockerfileAndAnalyse;
async function analyseDockerfile(contents) {
const dockerfile = dockerfile_ast_1.DockerfileParser.parse(contents);
const baseImageResult = (0, instruction_parser_1.getDockerfileBaseImageName)(dockerfile);
const dockerfilePackages = (0, instruction_parser_1.getPackagesFromDockerfile)(dockerfile);
const dockerfileLayers = (0, instruction_parser_1.getLayersFromPackages)(dockerfilePackages);
return {
baseImage: baseImageResult.baseImage,
dockerfilePackages,
dockerfileLayers,
error: baseImageResult.error,
};
}
exports.analyseDockerfile = analyseDockerfile;
async function readFile(path) {
return new Promise((resolve, reject) => {
fs.readFile(path, "utf8", (err, data) => {
return err ? reject(err) : resolve(data);
});
});
}
//# sourceMappingURL=index.js.map
;