UNPKG

@mountainpass/hooked-cli

Version:
26 lines (25 loc) 1.37 kB
/* eslint-disable no-template-curly-in-string */ import fs from 'fs'; import path from 'path'; import { resolveResolveScript } from '../scriptExecutors/ScriptExecutor.js'; import { Environment } from '../utils/Environment.js'; import defaults from '../defaults.js'; import logger from '../utils/logger.js'; export const generateMakefileScripts = (systemProcessEnvs) => { // environment variables, that can be overridden by the user const { MAKE_FILE: makefile = 'Makefile', MAKE_SCRIPT: makeScript = 'make -s -f ${MAKE_FILE} ${MAKE_COMMAND}' } = systemProcessEnvs; if (fs.existsSync(makefile)) { logger.debug('plugin: Loading Makefile...'); const scriptNames = fs.readFileSync(path.join(defaults.getDefaults().HOOKED_DIR, makefile), 'utf8').match(/^\w[^:]+/gm); if (scriptNames !== null && Array.isArray(scriptNames) && scriptNames.length > 0) { const makefileScripts = scriptNames.reduce((prev, curr) => { const env = new Environment().putAllGlobal({ MAKE_FILE: makefile, MAKE_COMMAND: curr }); const cmd = resolveResolveScript('-', { $resolve: makeScript }, env, false); prev[curr] = { _scriptPath: `makefile ${curr}`, $cmd: cmd }; return prev; }, {}); return { '🔧 makefile': makefileScripts }; } } return {}; };