Skip to content

Commit 0626eb1

Browse files
Izak88jkuri
authored andcommitted
fix(images): add image build status to system log and show all builded images
closes #241
1 parent 89e5cf6 commit 0626eb1

File tree

1 file changed

+46
-19
lines changed

1 file changed

+46
-19
lines changed

src/api/image-builder.ts

Lines changed: 46 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)