balena-cli
Version:
The official balena Command Line Interface
76 lines (74 loc) • 2.61 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@oclif/core");
const errors_1 = require("../../errors");
const lazy_1 = require("../../utils/lazy");
class DevicePublicUrlCmd extends core_1.Command {
async run() {
const { args: params, flags: options } = await this.parse(DevicePublicUrlCmd);
const balena = (0, lazy_1.getBalenaSdk)();
if (options.enable) {
await balena.models.device.enableDeviceUrl(params.uuid);
}
else if (options.disable) {
await balena.models.device.disableDeviceUrl(params.uuid);
}
else if (options.status) {
const hasUrl = await balena.models.device.hasDeviceUrl(params.uuid);
console.log(hasUrl);
}
else {
try {
const url = await balena.models.device.getDeviceUrl(params.uuid);
console.log(url);
}
catch (e) {
if (e.message.includes('Device is not web accessible')) {
throw new errors_1.ExpectedError((0, lazy_1.stripIndent) `
Public URL is not enabled for this device.
To enable, use:
balena device public-url ${params.uuid} --enable
`);
}
else {
throw e;
}
}
}
}
}
DevicePublicUrlCmd.description = (0, lazy_1.stripIndent) `
Get or manage the public URL for a device.
This command will output the current public URL for the
specified device. It can also enable or disable the URL,
or output the enabled status, using the respective options.
`;
DevicePublicUrlCmd.examples = [
'$ balena device public-url 23c73a1',
'$ balena device public-url 23c73a1 --enable',
'$ balena device public-url 23c73a1 --disable',
'$ balena device public-url 23c73a1 --status',
];
DevicePublicUrlCmd.args = {
uuid: core_1.Args.string({
description: 'the uuid of the device to manage',
required: true,
}),
};
DevicePublicUrlCmd.flags = {
enable: core_1.Flags.boolean({
description: 'enable the public URL',
exclusive: ['disable', 'status'],
}),
disable: core_1.Flags.boolean({
description: 'disable the public URL',
exclusive: ['enable', 'status'],
}),
status: core_1.Flags.boolean({
description: 'determine if public URL is enabled',
exclusive: ['enable', 'disable'],
}),
};
DevicePublicUrlCmd.authenticated = true;
exports.default = DevicePublicUrlCmd;
//# sourceMappingURL=public-url.js.map
;