private async Task DoCommand()

in src/ai/commands/init_command.cs [53:114]


        private async Task DoCommand(string command)
        {
            StartCommand();

            DisplayInitServiceBanner();

            var interactive = _values.GetOrDefault("init.service.interactive", true);
            var runId = _values.GetOrAdd("telemetry.init.run_id", Guid.NewGuid);

            switch (command)
            {
#if USE_PYTHON_HUB_PROJECT_CONNECTION_OR_RELATED
                case "init": await DoInitRootAsync(); break;

                case "init.resource": await DoInitRootHubResource(interactive); break;

                case "init.project": await DoInitRootProject(interactive, true, true); break;
                case "init.project.new": await DoInitRootProject(interactive, true, false); break;
                case "init.project.select": await DoInitRootProject(interactive, false, true); break;
#endif

                case "init.aiservices": await DoInitRootCognitiveServicesAIServicesKind(interactive); break;
                case "init.cognitiveservices": await DoInitRootCognitiveServicesCognitiveServicesKind(interactive); break;

                case "init.inference": await DoInitRootAzureAiInference(interactive); break;
                case "init.github": await DoInitRootGitHub(interactive); break;

                case "init":
                case "init.openai": await DoInitRootOpenAi(interactive, false, false, false, true, false, true); break;
                case "init.openai.chat": await DoInitRootOpenAi(interactive, false, false, true, true, true, true); break;
                case "init.openai.embeddings": await DoInitRootOpenAi(interactive, true, true, false, false, true, true); break;
                case "init.openai.realtime": await DoInitRootOpenAi(interactive, true, true, true, true, false, false); break;
                case "init.openai.deployments": await DoInitRootOpenAi(interactive, false, true, false, true, false, true); break;

                case "init.search": await DoInitRootSearch(interactive); break;
                case "init.speech": await DoInitRootSpeech(interactive); break;
                case "init.vision": await DoInitRootVision(interactive); break;

                // POST-IGNITE: TODO: add ability to init deployments
                // TODO: ensure that deployments in "openai" flow can be skipped

                default:
                    _values.AddThrowError("WARNING", $"Unknown command '{command}'");
                    break;
            }

            var outputEnvFile = _values.GetOrDefault("init.output.env.file", false);
            if (outputEnvFile)
            {
                var fileName = ".env";

                var env = ConfigEnvironmentHelpers.GetEnvironment(_values);
                var fqn = ConfigEnvironmentHelpers.SaveEnvironment(env, fileName);

                Console.WriteLine($"\n{fileName} (saved at '{fqn}')\n");
                ConfigEnvironmentHelpers.PrintEnvironment(env);
            }

            StopCommand();
            DisposeAfterStop();
            DeleteTemporaryFiles();
        }