UNPKG

dce-dev-wizard

Version:

Wizard for managing development apps at Harvard DCE.

31 lines (26 loc) 962 B
import fs from 'fs'; import path from 'path'; // Get current working directory let currDir = (process.env.PWD || process.env.CWD); // Remove part after node_modules if it exists if (currDir.includes('/node_modules')) { currDir = currDir.split('/node_modules')[0]; } /** * 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(currDir, '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;