Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export async function generateIonicEnvironment(ctx: IonicContext, pargv: string[]): Promise<{ env: IonicEnvironment; project?: IProject; }> {
process.chdir(ctx.execPath);
const argv = parseGlobalOptions(pargv);
const config = new Config(path.resolve(process.env['IONIC_CONFIG_DIRECTORY'] || DEFAULT_CONFIG_DIRECTORY, CONFIG_FILE));
debug('Terminal info: %o', TERMINAL_INFO);
if (config.get('interactive') === false || !TERMINAL_INFO.tty || TERMINAL_INFO.ci) {
argv['interactive'] = false;
}
const flags = argv as any as IonicEnvironmentFlags; // TODO
debug('CLI global options: %o', flags);
const log = new Logger({
level: argv['quiet'] ? LOGGER_LEVELS.WARN : LOGGER_LEVELS.INFO,
handlers: createDefaultLoggerHandlers(),
});
const prompt = await createPromptModule({
interactive: argv['interactive'],
onFallback: createOnFallback({ flags, log }),
});
const telemetryPromise = (async () => {
if (this.env.config.get('telemetry') !== false && !TERMINAL_INFO.ci && TERMINAL_INFO.tty) {
const { Telemetry } = await import('./telemetry');
let cmdInputs: CommandLineInputs = [];
const metadata = await this.getMetadata();
if (metadata.name === 'login' || metadata.name === 'logout') {
// This is a hack to wait until the selected commands complete before
// sending telemetry data. These commands update `this.env` in some
// way, which is used in the `Telemetry` instance.
await runPromise;
} else if (metadata.name === 'completion') {
// Ignore telemetry for these commands.
return;
} else if (metadata.name === 'help') {
cmdInputs = inputs;
} else {