@potatohd/vercel-package-installer1
Version:
Linux package installer on Vercel
65 lines (50 loc) • 1.54 kB
JavaScript
const path = require('path');
const execa = require('execa');
const log = require('./log');
async function install(scriptPath) {
log.subheading('Running install script');
log.info(`Running "bash ${scriptPath}"`);
try {
const ret = await execa('bash', [scriptPath]);
log.info(ret.stdout);
} catch (err) {
log.error();
throw err;
}
}
function findRequirements(entrypoint, files) {
log.subheading('Searching for "install.sh"');
const entryDirectory = path.dirname(entrypoint);
const requirementsTxt = path.join(entryDirectory, 'install.sh');
if (files[requirementsTxt]) {
log.info('Found local "install.sh"');
return files[requirementsTxt].fsPath;
}
if (files['install.sh']) {
log.info('Found global "install.sh"');
return files['install.sh'].fsPath;
}
log.info('No "install.sh" found');
return null;
}
module.exports = {
install, findRequirements,
};
function findPostRequirements(entrypoint, files) {
log.subheading('Searching for "post-install.sh"');
const entryDirectory = path.dirname(entrypoint);
const requirementsTxt = path.join(entryDirectory, 'post-install.sh');
if (files[requirementsTxt]) {
log.info('Found local "post-install.sh"');
return files[requirementsTxt].fsPath;
}
if (files['post-install.sh']) {
log.info('Found global "post-install.sh"');
return files['post-install.sh'].fsPath;
}
log.info('No "post-install.sh" found');
return null;
}
module.exports = {
install, findRequirements, findPostRequirements,
};