@@ -179,44 +179,72 @@ function cli(api){
179179 }
180180 }
181181 return exitCode ;
182- }
183-
184- //-----------------------------------------------------------------------------
185- // Process command line
186- //-----------------------------------------------------------------------------
187-
188- var args = api . args ,
189- argName ,
190- parts ,
191- arg = args . shift ( ) ,
192- options = { } ,
193- files = [ ] ;
194-
195- while ( arg ) {
196- if ( arg . indexOf ( "--" ) === 0 ) {
197- argName = arg . substring ( 2 ) ;
198- options [ argName ] = true ;
199-
200- if ( argName . indexOf ( "=" ) > - 1 ) {
201- parts = argName . split ( "=" ) ;
202- options [ parts [ 0 ] ] = parts [ 1 ] ;
203- } else {
182+ }
183+
184+
185+ function processArguments ( args , options ) {
186+ var arg = args . shift ( ) ,
187+ argName ,
188+ parts ,
189+ files = [ ] ;
190+
191+ while ( arg ) {
192+ if ( arg . indexOf ( "--" ) === 0 ) {
193+ argName = arg . substring ( 2 ) ;
204194 options [ argName ] = true ;
205- }
195+
196+ if ( argName . indexOf ( "=" ) > - 1 ) {
197+ parts = argName . split ( "=" ) ;
198+ options [ parts [ 0 ] ] = parts [ 1 ] ;
199+ } else {
200+ options [ argName ] = true ;
201+ }
206202
207- } else {
208-
209- //see if it's a directory or a file
210- if ( api . isDirectory ( arg ) ) {
211- files = files . concat ( api . getFiles ( arg ) ) ;
212203 } else {
213- files . push ( arg ) ;
204+
205+ //see if it's a directory or a file
206+ if ( api . isDirectory ( arg ) ) {
207+ files = files . concat ( api . getFiles ( arg ) ) ;
208+ } else {
209+ files . push ( arg ) ;
210+ }
214211 }
212+ arg = args . shift ( ) ;
213+ }
214+
215+ options . files = files ;
216+ return options ;
217+ }
218+
219+ function readConfigFile ( options ) {
220+ var data = api . readFile ( api . getFullPath ( ".csslintrc" ) ) ;
221+ if ( data ) {
222+ options = processArguments ( data . split ( / [ \s \n \r ] + / m) , options ) ;
223+ api . print ( "ignore = " + options . ignore ) ;
224+ api . print ( "errors = " + options . errors ) ;
225+ api . print ( "warnings = " + options . warnings ) ;
215226 }
216- arg = args . shift ( ) ;
227+
228+ return options ;
217229 }
230+
231+
232+
233+ //-----------------------------------------------------------------------------
234+ // Process command line
235+ //-----------------------------------------------------------------------------
236+
237+ var args = api . args ,
238+ argCount = args . length ,
239+ options = { } ;
240+
241+ // first look for config file .csslintrc
242+ options = readConfigFile ( options ) ;
243+
244+ // Command line arguments override config file
245+ options = processArguments ( args , options ) ;
218246
219- if ( options . help || arguments . length === 0 ) {
247+ if ( options . help || argCount === 0 ) {
220248 outputHelp ( ) ;
221249 api . quit ( 0 ) ;
222250 }
@@ -231,5 +259,5 @@ function cli(api){
231259 api . quit ( 0 ) ;
232260 }
233261
234- api . quit ( processFiles ( files , options ) ) ;
262+ api . quit ( processFiles ( options . files , options ) ) ;
235263}
0 commit comments