UNPKG

@adinsure-ops/ops-cli

Version:

Operations CLI for working with AdInsure

53 lines (52 loc) 1.98 kB
import { __awaiter } from "tslib"; import { Args, Flags } from '@oclif/core'; import fs from 'fs-extra'; import { parse as yamlParse, stringify as yamlStringify } from 'yaml'; import CommandBase from '../../command.base.js'; class DockerUpdateImageVersion extends CommandBase { run() { const _super = Object.create(null, { run: { get: () => super.run } }); return __awaiter(this, void 0, void 0, function* () { _super.run.call(this); const { args, flags } = yield this.parse(DockerUpdateImageVersion); try { const parsedYaml = yamlParse(fs.readFileSync(flags['file-path'], 'utf8')); for (const service of flags.services) { const image = parsedYaml.services[service].image.split(':'); image[1] = args.version; parsedYaml.services[service].image = image.join(':'); } fs.writeFileSync(flags['file-path'], yamlStringify(parsedYaml)); // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (error) { this.error(error.message); } }); } } DockerUpdateImageVersion.description = 'update docker image version docker compose file'; DockerUpdateImageVersion.usage = 'docker:update-image-version <tag>'; DockerUpdateImageVersion.examples = [ `$ ops docker:update-image-version 17.0.0 --service server client`, ]; DockerUpdateImageVersion.args = { version: Args.string({ required: true, description: 'Version', }), }; DockerUpdateImageVersion.flags = { services: Flags.string({ required: true, description: 'list of services to update', multiple: true, }), 'file-path': Flags.string({ default: './docker-compose.yml', description: 'list of services to update', }), }; export default DockerUpdateImageVersion;