dce-dev-wizard
Version:
Wizard for managing development apps at Harvard DCE.
26 lines (22 loc) • 821 B
text/typescript
import fs from 'fs';
import path from 'path';
// Import constants
import APP_DIRECTORY from '../constants/APP_DIRECTORY';
/**
* Get the major version of Node.js from a Dockerfile.
* @author Gabe Abrams
* @returns major version of Node.js (e.g. 22) or null if not found
*/
const getMajorNodeVersionInDockerfile = async (): Promise<number | null> => {
const dockerfilePath = path.join(APP_DIRECTORY, 'Dockerfile');
const dockerfileContents = fs.readFileSync(dockerfilePath, 'utf8');
const nodeVersionRegex = /FROM\s+node:(\d+)/;
const nodeMajorVersionMatch = dockerfileContents.match(nodeVersionRegex);
const nodeMajorVersion = (
nodeMajorVersionMatch
? Number.parseInt(nodeMajorVersionMatch[1], 10)
: null
);
return nodeMajorVersion;
};
export default getMajorNodeVersionInDockerfile;