haz-cli
Version:
61 lines (60 loc) • 2.06 kB
JavaScript
import { Args, Flags, ux } from '@oclif/core';
import { BaseCommand } from "../../base-command.js";
import Compose from "../../docker/compose.js";
import Output from "../../haz/output.js";
export default class Pull extends BaseCommand {
static args = {
service: Args.string({
description: 'The service you want to pull the image for.',
required: false,
}),
};
static flags = {
...BaseCommand.flags,
'dry-run': Flags.boolean({
description: 'Show what would be done, but do not actually do anything',
}),
'ignore-buildable': Flags.boolean({
description: 'Ignore imgages than can be built',
}),
'ignore-pull-failures': Flags.boolean({
description: 'Pull what it can and ignore failures',
}),
'include-deops': Flags.boolean({
description: 'Include dependencies',
}),
'policy': Flags.string({
description: 'Apply pull policy',
options: ["missing", "always"]
}),
};
// static description = 'Pull Docker Images'
static summary = 'Pull Docker Images';
async run() {
const { args, flags } = await this.parse(Pull);
const output = new Output(flags.verbose);
const commandArgs = ['pull'];
if (args.service) {
commandArgs.push(args.service);
ux.action.start(`Pulling \`${args.service}\` Docker Image`);
}
else {
ux.action.start('Pulling Docker Images');
}
const command = new Compose({}).raw(commandArgs);
command.stdout.on('data', (data) => {
output.log(data.toString());
});
command.stderr.on('data', (data) => {
output.error(data.toString());
});
command.on('exit', (code) => {
if (code === 0) {
ux.action.stop();
}
else {
ux.action.stop('Failed to pull Docker Images');
}
});
}
}