@@ -11,12 +11,13 @@ const checkDir = require('./checkDir')
1111const checkFile = require ( './checkFile' )
1212const checkShell = require ( './checkShell' )
1313const skipRule = require ( './skipRule' )
14+ const findPluginInfo = require ( './findPluginInfo' )
1415
1516module . exports = async (
1617 requirement : SolidarityRequirementChunk ,
1718 context : SolidarityRunContext
1819) : Promise < void | object [ ] > => {
19- const { head, tail, pipe, flatten, map, filter } = require ( 'ramda' )
20+ const { head, tail, pipe, flatten, map } = require ( 'ramda' )
2021
2122 const { print } = context
2223 const requirementName : string = head ( requirement )
@@ -116,12 +117,9 @@ module.exports = async (
116117 return addFailure ( rule . error || `'${ rule . command } ' output did not match '${ rule . match } '` )
117118 }
118119 case 'custom' :
119- // find correct rule function
120- const correctPlugin = head ( filter ( plugin => plugin . name === rule . plugin , context . _pluginsList ) )
121- if ( correctPlugin === undefined ) return addFailure ( `Plugin not found '${ rule . plugin } '` )
122- const customChecker = correctPlugin . rules && correctPlugin . rules [ rule . name ] && correctPlugin . rules [ rule . name ] . check
123- if ( correctPlugin && customChecker ) {
124- const customResult = await customChecker ( rule , context )
120+ const customPluginRule = findPluginInfo ( rule , context )
121+ if ( customPluginRule . success ) {
122+ const customResult = await customPluginRule . plugin . check ( rule , context )
125123 if ( customResult && customResult . pass ) {
126124 return addSuccess ( customResult . message )
127125 } else {
@@ -132,7 +130,7 @@ module.exports = async (
132130 return addFailure ( rule . error || failMessage )
133131 }
134132 } else {
135- return addFailure ( `NOT FOUND: Custom rule from ' ${ rule . plugin } ' plugin with check function ' ${ rule . name } '` )
133+ return addFailure ( customPluginRule . message )
136134 }
137135 default :
138136 return addFailure ( 'Encountered unknown rule' )
0 commit comments