balena-cli
Version:
The official balena Command Line Interface
75 lines (74 loc) • 3.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@oclif/core");
const lazy_1 = require("../../utils/lazy");
const release_1 = require("../release");
class ReleaseAssetListCmd extends core_1.Command {
async run() {
const { args, flags } = await this.parse(ReleaseAssetListCmd);
const balena = (0, lazy_1.getBalenaSdk)();
const { getRelease } = await Promise.resolve().then(() => require('../../utils/sdk'));
const release = await getRelease(args.commitOrId, { $select: 'id' });
const releaseAssets = await balena.models.release.asset.getAllByRelease(release.id, {
$select: ['id', 'asset_key', 'asset'],
});
if (flags.json) {
return JSON.stringify(releaseAssets, null, 2);
}
if (releaseAssets == null || releaseAssets.length === 0) {
console.log('No assets found for this release');
return;
}
const tableData = releaseAssets.map((releaseAsset) => {
var _a, _b, _c, _d, _e;
let sizeStr = '-';
if ((_a = releaseAsset.asset) === null || _a === void 0 ? void 0 : _a.size) {
const size = releaseAsset.asset.size;
if (size < 1000) {
sizeStr = `${size} B`;
}
else if (size < 1000 * 1000) {
sizeStr = `${(size / 1000).toFixed(2)} KB`;
}
else if (size < 1000 * 1000 * 1000) {
sizeStr = `${(size / 1000 / 1000).toFixed(2)} MB`;
}
else {
sizeStr = `${(size / 1000 / 1000 / 1000).toFixed(2)} GB`;
}
}
return {
'Asset Key': releaseAsset.asset_key,
'Release Asset ID': releaseAsset.id,
Filename: (_c = (_b = releaseAsset.asset) === null || _b === void 0 ? void 0 : _b.filename) !== null && _c !== void 0 ? _c : '-',
Size: sizeStr,
Type: (_e = (_d = releaseAsset.asset) === null || _d === void 0 ? void 0 : _d.content_type) !== null && _e !== void 0 ? _e : '-',
};
});
console.log((0, lazy_1.getVisuals)().table.horizontal(tableData, [
'Asset Key',
'Release Asset ID',
'Filename',
'Size',
'Type',
]));
}
}
ReleaseAssetListCmd.enableJsonFlag = true;
ReleaseAssetListCmd.description = (0, lazy_1.stripIndent) `
List all release assets.
List all assets for a specific release.
`;
ReleaseAssetListCmd.examples = [
'$ balena release-asset list 1234567',
'$ balena release-asset list a777f7345fe3d655c1c981aa642e5555',
];
ReleaseAssetListCmd.args = {
commitOrId: (0, release_1.commitOrIdArg)({
description: 'the commit or ID of the release',
required: true,
}),
};
ReleaseAssetListCmd.authenticated = true;
exports.default = ReleaseAssetListCmd;
//# sourceMappingURL=list.js.map