@@ -39,13 +39,36 @@ export function buildDockerImage(data: ImageData): void {
3939 imageBuilder . next ( { name : data . name , output : d . toString ( ) } ) ;
4040 } ) ;
4141 output . on ( 'finish' , ( ) => {
42- msg . message = `image ${ data . name } build successfully completed` ;
42+ msg = {
43+ message : `image ${ data . name } build successfully completed` ,
44+ type : 'info' ,
45+ notify : false
46+ } ;
47+ logger . next ( msg ) ;
48+ } ) ;
49+ output . on ( 'error' , ( ) => {
50+ msg = {
51+ message : `error while building image ${ data . name } ` ,
52+ type : 'error' ,
53+ notify : true
54+ } ;
55+ logger . next ( msg ) ;
56+ } ) ;
57+ output . on ( 'end' , ( ) => {
58+ msg = {
59+ message : `image ${ data . name } build successfully completed` ,
60+ type : 'info' ,
61+ notify : false
62+ } ;
4363 logger . next ( msg ) ;
4464 } ) ;
4565 } )
4666 . catch ( err => {
47- msg . message = `error while building image ${ data . name } (${ err } )` ;
48- msg . type = 'error' ;
67+ msg = {
68+ message : `error while building image ${ data . name } (${ err } )` ,
69+ type : 'error' ,
70+ notify : true
71+ } ;
4972 logger . next ( msg ) ;
5073 } ) ;
5174 } ) ;
@@ -79,24 +102,28 @@ export function getImages(): Promise<any> {
79102 fs . readdir ( imagesDir ) . then ( dirs => {
80103 docker . listImages ( )
81104 . then ( images => {
82- const imgs = images . filter ( image => {
83- if ( image . RepoTags && image . RepoTags . length ) {
84- const tag = image . RepoTags [ 0 ] . split ( ':' ) [ 0 ] ;
85- return dirs . indexOf ( tag ) !== - 1 ;
86- } else {
105+ let imgs = dirs . map ( d => {
106+ let index = images . findIndex ( i => {
107+ if ( i . RepoTags ) {
108+ return i . RepoTags . findIndex ( t => t . startsWith ( d ) ) !== - 1 ;
109+ }
110+
87111 return false ;
112+ } ) ;
113+ if ( index !== - 1 ) {
114+ return {
115+ name : d ,
116+ version : images [ index ] . RepoTags . find ( t => t . startsWith ( d ) ) . split ( ':' ) [ 1 ] ,
117+ created : format ( new Date ( images [ index ] . Created * 1000 ) , 'DD.MM.YYYY HH:mm:ss' ) ,
118+ createdAgo : distanceInWordsToNow ( new Date ( images [ index ] . Created * 1000 ) ) ,
119+ size : getHumanSize ( images [ index ] . Size ) ,
120+ dockerfile : null ,
121+ initsh : null
122+ } ;
123+ } else {
124+ return null ;
88125 }
89- } ) . map ( image => {
90- return {
91- name : image . RepoTags [ 0 ] . split ( ':' ) [ 0 ] ,
92- version : image . RepoTags [ 0 ] . split ( ':' ) [ 1 ] ,
93- created : format ( new Date ( image . Created * 1000 ) , 'DD.MM.YYYY HH:mm:ss' ) ,
94- createdAgo : distanceInWordsToNow ( new Date ( image . Created * 1000 ) ) ,
95- size : getHumanSize ( image . Size ) ,
96- dockerfile : null ,
97- initsh : null
98- } ;
99- } ) ;
126+ } ) . filter ( Boolean ) ;
100127
101128 Promise . all ( imgs . map ( img => {
102129 const dockerfile = getFilePath ( `images/${ img . name } /Dockerfile` ) ;
0 commit comments