@@ -72,20 +72,65 @@ module.exports = function (grunt) {
72
72
}
73
73
} ) . forEach ( function ( src ) {
74
74
75
- // Get CSS from a source file:
76
- var css = grunt . file . read ( src ) ;
75
+ // Placeholder for our css content
76
+ var css ;
77
77
var combed ;
78
78
79
- // Comb it:
80
- grunt . log . ok ( 'Sorting file "' + src + '"...' ) ;
81
- var syntax = src . split ( '.' ) . pop ( ) ;
82
- try {
83
- combed = comb . processString ( css , { syntax : syntax } ) ;
84
- grunt . file . write ( f . dest , combed ) ;
85
- } catch ( e ) {
86
- grunt . log . error ( e ) ;
79
+ if ( shouldProcess ( src , config ) ) {
80
+
81
+ // Get CSS from a source file:
82
+ css = grunt . file . read ( src ) ;
83
+
84
+ // Comb it:
85
+ grunt . log . ok ( 'Sorting file "' + src + '"...' ) ;
86
+ var syntax = src . split ( '.' ) . pop ( ) ;
87
+
88
+ try {
89
+ combed = comb . processString ( css , { syntax : syntax } ) ;
90
+ grunt . file . write ( f . dest , combed ) ;
91
+ } catch ( e ) {
92
+ grunt . log . error ( e ) ;
93
+ }
94
+ } else {
95
+ grunt . log . ok ( 'Skipping file "' + src + '" because of exclude.' ) ;
96
+ grunt . file . copy ( src , f . dest ) ;
87
97
}
88
98
} ) ;
89
99
} ) ;
90
100
} ) ;
101
+
102
+ function shouldProcess ( src , config ) {
103
+ var excludes = zip (
104
+ ( config . exclude || [ ] ) . map ( function ( pattern ) {
105
+ return grunt . file . expand ( pattern ) ;
106
+ } )
107
+ ) ;
108
+ var ok = true ;
109
+
110
+ if ( excludes ) {
111
+ var found = false ;
112
+ src = src . replace ( / ^ \. \/ / , '' ) ;
113
+ for ( var i = 0 , excludeLength = excludes . length ; i < excludeLength && ! found ; i ++ ) {
114
+ if ( excludes [ i ] . match ( src ) ) {
115
+ found = true ;
116
+ }
117
+ }
118
+
119
+ ok = ok && ! found ;
120
+ }
121
+
122
+ return ok ;
123
+ }
124
+
125
+ function zip ( arrays ) {
126
+ var returnArray = [ ] ;
127
+
128
+ arrays . forEach ( function ( value ) {
129
+ value . forEach ( function ( item ) {
130
+ returnArray . push ( item ) ;
131
+ } ) ;
132
+ } ) ;
133
+
134
+ return returnArray ;
135
+ }
91
136
} ;
0 commit comments