Refactor the commit-message files to be consistent with how other ng-dev tooling is structured. PR Close #38845
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /**
 | |
|  * @license
 | |
|  * Copyright Google LLC All Rights Reserved.
 | |
|  *
 | |
|  * Use of this source code is governed by an MIT-style license that can be
 | |
|  * found in the LICENSE file at https://angular.io/license
 | |
|  */
 | |
| import {readFileSync} from 'fs';
 | |
| import {resolve} from 'path';
 | |
| 
 | |
| import {getRepoBaseDir} from '../../utils/config';
 | |
| import {error, green, info, log, red, yellow} from '../../utils/console';
 | |
| 
 | |
| import {deleteCommitMessageDraft, saveCommitMessageDraft} from '../commit-message-draft';
 | |
| import {printValidationErrors, validateCommitMessage} from '../validate';
 | |
| 
 | |
| /** Validate commit message at the provided file path. */
 | |
| export function validateFile(filePath: string, isErrorMode: boolean) {
 | |
|   const commitMessage = readFileSync(resolve(getRepoBaseDir(), filePath), 'utf8');
 | |
|   const {valid, errors} = validateCommitMessage(commitMessage);
 | |
|   if (valid) {
 | |
|     info(`${green('√')}  Valid commit message`);
 | |
|     deleteCommitMessageDraft(filePath);
 | |
|     process.exitCode = 0;
 | |
|     return;
 | |
|   }
 | |
| 
 | |
|   /** Function used to print to the console log. */
 | |
|   let printFn = isErrorMode ? error : log;
 | |
| 
 | |
|   printFn(`${isErrorMode ? red('✘') : yellow('!')}  Invalid commit message`);
 | |
|   printValidationErrors(errors, printFn);
 | |
|   if (isErrorMode) {
 | |
|     printFn(red('Aborting commit attempt due to invalid commit message.'));
 | |
|     printFn(
 | |
|         red('Commit message aborted as failure rather than warning due to local configuration.'));
 | |
|   } else {
 | |
|     printFn(yellow('Before this commit can be merged into the upstream repository, it must be'));
 | |
|     printFn(yellow('amended to follow commit message guidelines.'));
 | |
|   }
 | |
| 
 | |
|   // On all invalid commit messages, the commit message should be saved as a draft to be
 | |
|   // restored on the next commit attempt.
 | |
|   saveCommitMessageDraft(filePath, commitMessage);
 | |
|   // Set the correct exit code based on if invalid commit message is an error.
 | |
|   process.exitCode = isErrorMode ? 1 : 0;
 | |
| }
 |