alwaysai
Version:
The alwaysAI command-line interface (CLI)
35 lines (33 loc) • 1.16 kB
text/typescript
import * as logSymbols from 'log-symbols';
import { CliUsageError } from '@alwaysai/alwayscli';
import { AaiDevice } from '../../infrastructure';
import { targetHostnameCheckComponent } from './target-hostname-check-component';
import { RequiredWithYesMessage, echo } from '../../util';
export async function getTargetHostnameComponent(props: {
yes: boolean;
device: AaiDevice;
targetHostname?: string;
}): Promise<string | undefined> {
const { yes, device } = props;
const targetHostname =
device.host_name !== '' ? device.host_name : props.targetHostname;
if (yes && !targetHostname) {
throw new CliUsageError(RequiredWithYesMessage('hostname'));
}
if (device.host_name !== '' && props.targetHostname) {
echo(`${logSymbols.warning} Input for targetHostname will be ignored.`);
}
if (device.mode === 'production') {
// Support prompting for hostname for production (provisioned) devices only
if (!targetHostname) {
return await targetHostnameCheckComponent({
prompt: true
});
}
}
await targetHostnameCheckComponent({
targetHostname,
prompt: false
});
return targetHostname;
}