UNPKG

@git.zone/cli

Version:

A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.

50 lines 4.42 kB
import { BaseFormatter } from '../classes.baseformatter.js'; import * as plugins from '../mod.plugins.js'; import * as paths from '../../paths.js'; import { logger } from '../../gitzone.logging.js'; const INCOMPATIBLE_LICENSES = ['AGPL', 'GPL', 'SSPL']; export class LicenseFormatter extends BaseFormatter { get name() { return 'license'; } async analyze() { // License formatter only checks for incompatible licenses // It does not modify any files, so return empty array // The actual check happens in execute() for reporting purposes return []; } async execute(changes) { const startTime = this.stats.moduleStartTime(this.name); this.stats.startModule(this.name); try { // Check if node_modules exists const nodeModulesPath = plugins.path.join(paths.cwd, 'node_modules'); const nodeModulesExists = await plugins.smartfs .directory(nodeModulesPath) .exists(); if (!nodeModulesExists) { logger.log('warn', 'No node_modules found. Skipping license check'); return; } // Run license check const licenseChecker = await plugins.smartlegal.createLicenseChecker(); const licenseCheckResult = await licenseChecker.excludeLicenseWithinPath(paths.cwd, INCOMPATIBLE_LICENSES); if (licenseCheckResult.failingModules.length === 0) { logger.log('info', 'License check passed - no incompatible licenses found'); } else { logger.log('error', 'License check failed - incompatible licenses found:'); for (const failedModule of licenseCheckResult.failingModules) { console.log(` ${failedModule.name} has license ${failedModule.license}`); } } } finally { this.stats.endModule(this.name, startTime); } } async applyChange(change) { // No file changes for license formatter } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS5mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9tb2RfZm9ybWF0L2Zvcm1hdHRlcnMvbGljZW5zZS5mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTVELE9BQU8sS0FBSyxPQUFPLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbEQsTUFBTSxxQkFBcUIsR0FBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFaEUsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGFBQWE7SUFDakQsSUFBSSxJQUFJO1FBQ04sT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPO1FBQ1gsMERBQTBEO1FBQzFELHNEQUFzRDtRQUN0RCwrREFBK0Q7UUFDL0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUF5QjtRQUNyQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQztZQUNILCtCQUErQjtZQUMvQixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ3JFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxPQUFPLENBQUMsT0FBTztpQkFDNUMsU0FBUyxDQUFDLGVBQWUsQ0FBQztpQkFDMUIsTUFBTSxFQUFFLENBQUM7WUFFWixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsK0NBQStDLENBQUMsQ0FBQztnQkFDcEUsT0FBTztZQUNULENBQUM7WUFFRCxvQkFBb0I7WUFDcEIsTUFBTSxjQUFjLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDdkUsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLGNBQWMsQ0FBQyx3QkFBd0IsQ0FDdEUsS0FBSyxDQUFDLEdBQUcsRUFDVCxxQkFBcUIsQ0FDdEIsQ0FBQztZQUVGLElBQUksa0JBQWtCLENBQUMsY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbkQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsdURBQXVELENBQUMsQ0FBQztZQUM5RSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUscURBQXFELENBQUMsQ0FBQztnQkFDM0UsS0FBSyxNQUFNLFlBQVksSUFBSSxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDN0QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxLQUFLLFlBQVksQ0FBQyxJQUFJLGdCQUFnQixZQUFZLENBQUMsT0FBTyxFQUFFLENBQzdELENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFzQjtRQUN0Qyx3Q0FBd0M7SUFDMUMsQ0FBQztDQUNGIn0=