@@ -7,6 +7,7 @@ import {ConfigViewer} from '../viewers/ConfigViewer';
77import { createWorkspace } from '../utils/WorkspaceUtil' ;
88import { LogEventListener , LogEventLogger } from '../listeners/LogEventListener' ;
99import { ProgressEventListener } from '../listeners/ProgressEventListener' ;
10+ import { ConfigActionSummaryViewer } from '../viewers/ActionSummaryViewer' ;
1011import { ConfigModel , ConfigModelGeneratorFunction , ConfigContext } from '../models/ConfigModel' ;
1112
1213export type ConfigDependencies = {
@@ -16,11 +17,13 @@ export type ConfigDependencies = {
1617 logEventListeners : LogEventListener [ ] ;
1718 progressEventListeners : ProgressEventListener [ ] ;
1819 writer ?: ConfigWriter ;
20+ actionSummaryViewer : ConfigActionSummaryViewer ;
1921 viewer : ConfigViewer ;
2022} ;
2123
2224export type ConfigInput = {
2325 'config-file' ?: string ;
26+ 'output-file' ?: string ;
2427 'rule-selector' : string [ ] ;
2528 workspace ?: string [ ] ;
2629} ;
@@ -38,7 +41,8 @@ export class ConfigAction {
3841 const defaultConfig : CodeAnalyzerConfig = CodeAnalyzerConfig . withDefaults ( ) ;
3942
4043 // We always add a Logger Listener to the appropriate listeners list, because we should always be logging.
41- const logEventLogger : LogEventLogger = new LogEventLogger ( await LogFileWriter . fromConfig ( userConfig ) ) ;
44+ const logFileWriter : LogFileWriter = await LogFileWriter . fromConfig ( userConfig ) ;
45+ const logEventLogger : LogEventLogger = new LogEventLogger ( logFileWriter ) ;
4246 this . dependencies . logEventListeners . push ( logEventLogger ) ;
4347
4448 // The User's config produces one Core.
@@ -118,7 +122,10 @@ export class ConfigAction {
118122 const configModel : ConfigModel = this . dependencies . modelGenerator ( relevantEngines , userConfigContext , defaultConfigContext ) ;
119123
120124 this . dependencies . viewer . view ( configModel ) ;
121- await this . dependencies . writer ?. write ( configModel ) ;
125+ const fileWritten : boolean = this . dependencies . writer
126+ ? await this . dependencies . writer . write ( configModel )
127+ : false ;
128+ this . dependencies . actionSummaryViewer . view ( logFileWriter . getLogDestination ( ) , fileWritten ? input [ 'output-file' ] : undefined ) ;
122129 return Promise . resolve ( ) ;
123130 }
124131
0 commit comments