@@ -125,7 +125,7 @@ gulp.task('packages:get', async () => {
125
125
gulp . task ( 'packages:ci' , async ( ) => {
126
126
const modules = getModules ( ) ;
127
127
const parts = [ ] ;
128
-
128
+
129
129
const packages = Object . keys ( modules ) ;
130
130
for ( let i = 0 ; i < packages . length ; i ++ ) {
131
131
const currentPackage = process . platform === 'win32' ? packages [ i ] . replace ( '/' , '\\' ) : packages [ i ] ;
@@ -138,18 +138,19 @@ gulp.task('packages:ci', async () => {
138
138
139
139
const getModules = ( ) => {
140
140
const gitmodules = fs . readFileSync ( `${ __dirname } /.gitmodules` , { encoding : 'utf8' } ) ;
141
- const modulesArray : any = gitmodules . split ( '[' ) . filter ( m => ! ! m ) . map ( ( m , i ) => m . split ( `
142
- ` ) . map ( ( p , i ) => ! i ? p . split ( ' ' ) [ 1 ] . slice ( 1 , process . platform === 'win32' ? - 3 : - 2 ) : p . replace ( '\n' , '' ) . split ( ' = ' ) ) ) ;
141
+ const regex = / \[ s u b m o d u l e ? " (?< submodule_name > .+ ?) " ] \s + p a t h ? = ? (?< path > .+ ?) \s + u r l ? = ? (?< url > .+ ?) \s / gm;
143
142
const modules = { } ;
144
- for ( let m = 0 ; m < modulesArray . length ; m ++ ) {
145
- const ma = modulesArray [ m ] ;
146
- const mod = modules [ ma [ 0 ] ] = { } ;
147
- const mas = ma . slice ( 1 ) ;
148
- for ( let k = 0 ; k < mas . length ; k ++ ) {
149
- const field = mas [ k ] ;
150
- mod [ field [ 0 ] ] = field [ 1 ] ;
143
+
144
+ let submodule ;
145
+
146
+ while ( ( submodule = regex . exec ( gitmodules ) ) !== null ) {
147
+ const { submodule_name, path, url} = submodule . groups
148
+ modules [ submodule_name ] = {
149
+ path,
150
+ url,
151
151
}
152
152
}
153
+
153
154
return modules ;
154
155
}
155
156
0 commit comments