@@ -212,31 +212,35 @@ gulp.task('webstorm:project', function () {
212212gulp . task ( 'webstorm:templates' , function ( ) {
213213 var srcDirectory = path . join ( TEMPLATE_PATH , 'fileTemplates' ) ;
214214 var destDirectory = path . join ( userPreferencesDirectory ( ) , 'fileTemplates' ) ;
215- var removed = [ ] ;
216- var added = [ ] ;
217- fs . readdirSync ( destDirectory )
218- . forEach ( function eachTemplate ( filename ) {
219- if ( / ^ a n g u l a r i t y / . test ( path . basename ( filename ) ) ) {
220- removed . push ( filename ) ;
221- fs . unlinkSync ( path . join ( destDirectory , filename ) ) ;
222- }
223- } ) ;
224- fs . readdirSync ( srcDirectory )
225- . forEach ( function eachTemplate ( filename ) {
226- var srcPath = path . join ( srcDirectory , filename ) ;
227- var destPath = path . join ( destDirectory , filename ) ;
228- added . push ( filename ) ;
229- fs . writeFileSync ( destPath , fs . readFileSync ( srcPath ) )
230- } ) ;
231- removed . forEach ( function ( filename ) {
215+ var isValid = fs . existsSync ( destDirectory ) && fs . statsSync ( destDirectory ) . isDirectory ( ) ;
216+ if ( ! isValid ) {
217+ gutil . log ( 'Failed to locate Webstorm templates. Expected directory:' )
218+ gutil . log ( ' ' + destDirectory )
219+ } else {
220+ var removed = [ ] ;
221+ var added = [ ] ;
222+ fs . readdirSync ( destDirectory ) . forEach ( function eachTemplate ( filename ) {
223+ if ( / ^ a n g u l a r i t y / . test ( path . basename ( filename ) ) ) {
224+ removed . push ( filename ) ;
225+ fs . unlinkSync ( path . join ( destDirectory , filename ) ) ;
226+ }
227+ } ) ;
228+ fs . readdirSync ( srcDirectory ) . forEach ( function eachTemplate ( filename ) {
229+ var srcPath = path . join ( srcDirectory , filename ) ;
230+ var destPath = path . join ( destDirectory , filename ) ;
231+ added . push ( filename ) ;
232+ fs . writeFileSync ( destPath , fs . readFileSync ( srcPath ) )
233+ } ) ;
234+ removed . forEach ( function ( filename ) {
232235 var isRemove = ( added . indexOf ( filename ) < 0 ) ;
233236 if ( isRemove ) {
234237 gutil . log ( 'removed template ' + filename ) ;
235238 }
236239 } ) ;
237- added . forEach ( function ( filename ) {
240+ added . forEach ( function ( filename ) {
238241 gutil . log ( 'wrote template ' + filename ) ;
239242 } ) ;
243+ }
240244// TODO review with @impaler
241245// ideTemplate.webStorm.copyFileTemplates(fileTemplatePath);
242246} ) ;
@@ -276,12 +280,19 @@ gulp.task('webstorm:tools', function () {
276280 } ]
277281 } ;
278282 }
279- var destPath = path . join ( userPreferencesDirectory ( ) , 'tools' , 'Angularity.xml' ) ;
280- var content = ideTemplate . webStorm . createExternalTool ( {
281- name : 'Angularity' ,
282- tools : [ 'test' , 'watch' , 'watch --unminified' , 'build' , 'build --unminified' , 'release' ] . map ( createNode )
283- } ) ;
284- fs . writeFileSync ( destPath , content ) ;
283+ var destDirectory = path . join ( userPreferencesDirectory ( ) , 'tools' ) ;
284+ var isValid = fs . existsSync ( destDirectory ) && fs . statsSync ( destDirectory ) . isDirectory ( ) ;
285+ if ( ! isValid ) {
286+ gutil . log ( 'Failed to locate Webstorm tools. Expected directory:' )
287+ gutil . log ( ' ' + destDirectory )
288+ } else {
289+ var destPath = path . join ( destDirectory , 'Angularity.xml' ) ;
290+ var content = ideTemplate . webStorm . createExternalTool ( {
291+ name : 'Angularity' ,
292+ tools : [ 'test' , 'watch' , 'watch --unminified' , 'build' , 'build --unminified' , 'release' ] . map ( createNode )
293+ } ) ;
294+ fs . writeFileSync ( destPath , content ) ;
295+ }
285296// TODO review with @impaler
286297// ideTemplate.webStorm.writeExternalTool(toolContent, 'Angularity.xml');
287298} ) ;
0 commit comments