1 | var url = require('url');
|
2 | var child = require('child_process');
|
3 | var _ = require('lodash');
|
4 |
|
5 | module.exports = function(topic) {
|
6 | return {
|
7 | topic: topic,
|
8 | command: 'clean',
|
9 | description: 'clean up heroku-docker images',
|
10 | help: `help text for ${topic}:clean`,
|
11 | run: function(context) {
|
12 | var stdout = child.execSync(`docker images`, { encoding: 'utf8' });
|
13 | var images = _.map(_.filter(stdout.split('\n'), isImage), lineToId);
|
14 | images.forEach(removeImage);
|
15 | }
|
16 | }
|
17 | };
|
18 |
|
19 | function isImage(line) {
|
20 | return line.indexOf('heroku-docker') === 0;
|
21 | }
|
22 |
|
23 | function lineToId(line) {
|
24 | return line.split(' ')[0];
|
25 | }
|
26 |
|
27 | function removeImage(image) {
|
28 | child.execSync(`docker rmi -f ${image}`);
|
29 | }
|