33var _ = require ( "lodash" ) ;
44var cli = require ( "cli" ) ;
55var path = require ( "path" ) ;
6- var shjs = require ( "shelljs" ) ;
76var minimatch = require ( "minimatch" ) ;
87var htmlparser = require ( "htmlparser2" ) ;
98var exit = require ( "exit" ) ;
109var stripJsonComments = require ( "strip-json-comments" ) ;
1110var JSHINT = require ( "./jshint.js" ) . JSHINT ;
1211var defReporter = require ( "./reporters/default" ) . reporter ;
12+ var fsUtils = require ( "./fs-utils" ) ;
1313
1414var OPTIONS = {
1515 "config" : [ "c" , "Custom configuration file" , "string" , false ] ,
@@ -89,7 +89,7 @@ function findConfig(file) {
8989 else if ( envs ) {
9090 home = path . normalize ( path . join ( envs , ".jshintrc" ) ) ;
9191
92- if ( shjs . test ( "-e" , home ) )
92+ if ( fsUtils . exists ( home ) )
9393 return home ;
9494 }
9595
@@ -108,7 +108,7 @@ function getHomeDir() {
108108
109109 while ( paths . length ) {
110110 homePath = paths . shift ( ) ;
111- if ( homePath && shjs . test ( "-e" , homePath ) ) {
111+ if ( fsUtils . exists ( homePath ) ) {
112112 return homePath ;
113113 }
114114 }
@@ -177,7 +177,7 @@ function findFile(name, cwd) {
177177
178178 var parent = path . resolve ( cwd , "../" ) ;
179179
180- if ( shjs . test ( "-e" , filename ) ) {
180+ if ( fsUtils . exists ( filename ) ) {
181181 findFileResults [ filename ] = filename ;
182182 return filename ;
183183 }
@@ -203,7 +203,7 @@ function loadIgnores(params) {
203203 return [ ] ;
204204 }
205205
206- var lines = ( file ? shjs . cat ( file ) : "" ) . split ( "\n" ) ;
206+ var lines = ( file ? fsUtils . readFile ( file ) : "" ) . split ( "\n" ) ;
207207 var exclude = params . exclude || "" ;
208208 lines . unshift . apply ( lines , exclude . split ( "," ) ) ;
209209
@@ -237,7 +237,7 @@ function isIgnored(fp, patterns) {
237237 return true ;
238238 }
239239
240- if ( shjs . test ( "-d" , fp ) && ip . match ( / ^ [ ^ \/ \\ ] * [ \/ \\ ] ? $ / ) &&
240+ if ( fsUtils . isDirectory ( fp ) && ip . match ( / ^ [ ^ \/ \\ ] * [ \/ \\ ] ? $ / ) &&
241241 fp . match ( new RegExp ( "^" + ip + ".*" ) ) ) {
242242 return true ;
243243 }
@@ -419,15 +419,15 @@ function collect(fp, files, ignores, ext) {
419419 return ;
420420 }
421421
422- if ( ! shjs . test ( "-e" , fp ) ) {
422+ if ( ! fsUtils . exists ( fp ) ) {
423423 cli . error ( "Can't open " + fp ) ;
424424 return ;
425425 }
426426
427- if ( shjs . test ( "-d" , fp ) ) {
428- shjs . ls ( fp ) . forEach ( function ( item ) {
427+ if ( fsUtils . isDirectory ( fp ) ) {
428+ fsUtils . readDirectory ( fp ) . forEach ( function ( item ) {
429429 var itempath = path . join ( fp , item ) ;
430- if ( shjs . test ( "-d" , itempath ) || item . match ( ext ) ) {
430+ if ( fsUtils . isDirectory ( itempath ) || item . match ( ext ) ) {
431431 collect ( itempath , files , ignores , ext ) ;
432432 }
433433 } ) ;
@@ -458,8 +458,8 @@ function lint(code, results, config, data, file) {
458458 if ( config . prereq ) {
459459 config . prereq . forEach ( function ( fp ) {
460460 fp = path . join ( config . dirname , fp ) ;
461- if ( shjs . test ( "-e" , fp ) )
462- buffer . push ( shjs . cat ( fp ) ) ;
461+ if ( fsUtils . exists ( fp ) )
462+ buffer . push ( fsUtils . readFile ( fp ) ) ;
463463 } ) ;
464464 delete config . prereq ;
465465 }
@@ -529,13 +529,13 @@ var exports = {
529529 return { } ;
530530 }
531531
532- if ( ! shjs . test ( "-e" , fp ) ) {
532+ if ( ! fsUtils . exists ( fp ) ) {
533533 cli . error ( "Can't find config file: " + fp ) ;
534534 exports . exit ( 1 ) ;
535535 }
536536
537537 try {
538- var config = JSON . parse ( stripJsonComments ( shjs . cat ( fp ) ) ) ;
538+ var config = JSON . parse ( stripJsonComments ( fsUtils . readFile ( fp ) ) ) ;
539539 config . dirname = path . dirname ( fp ) ;
540540
541541 if ( config [ 'extends' ] ) {
@@ -653,7 +653,7 @@ var exports = {
653653 var errors = [ ] ;
654654
655655 try {
656- code = shjs . cat ( file ) ;
656+ code = fsUtils . readFile ( file ) ;
657657 } catch ( err ) {
658658 cli . error ( "Can't open " + file ) ;
659659 exports . exit ( 1 ) ;
0 commit comments