UNPKG

balena-cli

Version:

The official balena Command Line Interface

80 lines (75 loc) 2.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const core_1 = require("@oclif/core"); const errors_1 = require("../../errors"); const cf = require("../../utils/common-flags"); const lazy_1 = require("../../utils/lazy"); const messages_1 = require("../../utils/messages"); class TagListCmd extends core_1.Command { constructor() { super(...arguments); this.missingResourceMessage = (0, lazy_1.stripIndent) ` To list tags for a resource, you must provide exactly one of: * A fleet, with --fleet <fleetNameOrSlug> * A device, with --device <uuid> * A release, with --release <id or commit> See the help page for examples: $ balena help tag list `; } async run() { const { flags: options } = await this.parse(TagListCmd); const balena = (0, lazy_1.getBalenaSdk)(); if (!options.fleet && !options.device && !options.release) { throw new errors_1.ExpectedError(this.missingResourceMessage); } let tags; if (options.fleet) { const { getFleetSlug } = await Promise.resolve().then(() => require('../../utils/sdk')); tags = await balena.models.application.tags.getAllByApplication(await getFleetSlug(balena, options.fleet)); } if (options.device) { tags = await balena.models.device.tags.getAllByDevice(options.device); } if (options.release) { const { disambiguateReleaseParam } = await Promise.resolve().then(() => require('../../utils/normalization')); const releaseParam = await disambiguateReleaseParam(balena, options.release); tags = await balena.models.release.tags.getAllByRelease(releaseParam); } if (!tags || tags.length === 0) { throw new errors_1.ExpectedError('No tags found'); } console.log((0, lazy_1.getVisuals)().table.horizontal(tags, ['tag_key', 'value'])); } } TagListCmd.aliases = ['tags']; TagListCmd.deprecateAliases = true; TagListCmd.description = (0, lazy_1.stripIndent) ` List all tags for a fleet, device or release. List all tags and their values for the specified fleet, device or release. ${messages_1.applicationIdInfo.split('\n').join('\n\t\t')} `; TagListCmd.examples = [ '$ balena tag list --fleet MyFleet', '$ balena tag list -f myorg/myfleet', '$ balena tag list --device 7cf02a6', '$ balena tag list --release 1234', '$ balena tag list --release b376b0e544e9429483b656490e5b9443b4349bd6', ]; TagListCmd.flags = { fleet: { ...cf.fleet, exclusive: ['device', 'release'], }, device: { ...cf.device, exclusive: ['fleet', 'release'], }, release: { ...cf.release, exclusive: ['fleet', 'device'], }, }; TagListCmd.authenticated = true; exports.default = TagListCmd; //# sourceMappingURL=list.js.map