47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @file
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Provides the build:css command to compile *.pcss.css files to CSS.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Run build:css with --file to only parse a specific file. Using the --check
							 | 
						||
| 
								 | 
							
								 * flag build:css can be run to check if files are compiled correctly.
							 | 
						||
| 
								 | 
							
								 * @example <caption>Only process misc/drupal.pcss.css and misc/drupal.init.pcss.css</caption>
							 | 
						||
| 
								 | 
							
								 * yarn run build:css --file misc/drupal.pcss.css --file misc/drupal.init.pcss.css
							 | 
						||
| 
								 | 
							
								 * @example <caption>Check if all files have been compiled correctly</caption>
							 | 
						||
| 
								 | 
							
								 * yarn run build:css --check
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @internal This file is part of the core CSS build process and is only
							 | 
						||
| 
								 | 
							
								 * designed to be used in that context.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const { globSync } = require('glob');
							 | 
						||
| 
								 | 
							
								const argv = require('minimist')(process.argv.slice(2));
							 | 
						||
| 
								 | 
							
								const changeOrAdded = require('./changeOrAdded');
							 | 
						||
| 
								 | 
							
								const check = require('./check');
							 | 
						||
| 
								 | 
							
								const log = require('./log');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Match only on .pcss.css files.
							 | 
						||
| 
								 | 
							
								const fileMatch = './**/*.pcss.css';
							 | 
						||
| 
								 | 
							
								// Ignore everything in node_modules
							 | 
						||
| 
								 | 
							
								const globOptions = {
							 | 
						||
| 
								 | 
							
								  ignore: './node_modules/**'
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								const processFiles = (filePaths) => {
							 | 
						||
| 
								 | 
							
								  // Process all the found files.
							 | 
						||
| 
								 | 
							
								  let callback = changeOrAdded;
							 | 
						||
| 
								 | 
							
								  if (argv.check) {
							 | 
						||
| 
								 | 
							
								    callback = check;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  filePaths.forEach(callback);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (argv.file) {
							 | 
						||
| 
								 | 
							
								  processFiles([].concat(argv.file));
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								else {
							 | 
						||
| 
								 | 
							
								  processFiles(globSync(fileMatch, globOptions).sort());
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								process.exitCode = 0;
							 |