import * as plugins from './mod.plugins.js'; import * as paths from '../paths.js'; import { Project } from '../classes.project.js'; import { logger } from '../gitzone.logging.js'; const incompatibleLicenses: string[] = ['AGPL', 'GPL', 'SSPL']; export const run = async (projectArg: Project) => { const nodeModulesInstalled = await plugins.smartfile.fs.isDirectory( plugins.path.join(paths.cwd, 'node_modules'), ); if (!nodeModulesInstalled) { logger.log('warn', 'No node_modules found. Skipping license check'); return; } const licenseChecker = await plugins.smartlegal.createLicenseChecker(); const licenseCheckResult = await licenseChecker.excludeLicenseWithinPath( paths.cwd, incompatibleLicenses, ); if (licenseCheckResult.failingModules.length === 0) { logger.log('info', 'Success -> licenses passed!'); } else { logger.log('error', 'Error -> licenses failed. Here is why:'); for (const failedModule of licenseCheckResult.failingModules) { console.log(`${failedModule.name} fails with license ${failedModule.license}`); } } };