@marteye/studio-cli
Version:
CLI for MartEye Studio API
44 lines (40 loc) • 1.51 kB
JavaScript
;
var commander = require('commander');
var output = require('../utils/output.js');
var studiojs = require('@marteye/studiojs');
function utilsCommand() {
const utils = new commander.Command('utils')
.description('Utility commands');
utils
.command('validate-eartag <tag-number>')
.description('Validate an ear tag number')
.action(async (tagNumber, _options, command) => {
const globalOptions = command.optsWithGlobals ? command.optsWithGlobals() : command.parent?.parent?.opts() || {};
try {
const tag = new studiojs.EarTag(tagNumber);
const isValid = tag.isEartag();
if (isValid) {
output.success(`Ear tag '${tagNumber}' is valid`);
output.output({
original: tagNumber,
formatted: tag.toString(),
country: tag.isoCountryCode,
herd: tag.nationalIdentifier?.slice(0, 7),
individual: tag.nationalIdentifier?.slice(7),
isValid: true
}, globalOptions);
}
else {
output.error(`Ear tag '${tagNumber}' is invalid`);
process.exit(1);
}
}
catch (err) {
output.error('Failed to validate ear tag', err.message);
process.exit(1);
}
});
return utils;
}
exports.utilsCommand = utilsCommand;
//# sourceMappingURL=utils.js.map