UNPKG

haz-cli

Version:
61 lines (60 loc) 2.06 kB
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'); } }); } }