protected override void ProcessRecord()

in src/GetFunctionsMetadataCommand.cs [31:73]


        protected override void ProcessRecord()
        {
            try
            {
                // Attempt to normalize the user's input to a local path from where the cmdlet is running
                SessionState ss = new SessionState();
                string current = Directory.GetCurrentDirectory();
                Directory.SetCurrentDirectory(ss.Path.CurrentFileSystemLocation.Path);
                FunctionAppDirectory = Path.GetFullPath(FunctionAppDirectory);
                Directory.SetCurrentDirectory(current);

                if (!Directory.Exists(FunctionAppDirectory))
                {
                    ThrowTerminatingError(new ErrorRecord(new Exception(string.Format(AzPowerShellSdkStrings.InvalidFunctionsAppDirectory, FunctionAppDirectory)), "InvalidFunctionAppDirectory", ErrorCategory.ParserError, null));
                }

                DirectoryInfo FunctionsAppDirectory = new DirectoryInfo(FunctionAppDirectory);

                if(!IsValidFunctionsAppDirectory(FunctionsAppDirectory))
                {
                    ThrowTerminatingError(new ErrorRecord(new Exception(string.Format(AzPowerShellSdkStrings.MissingHostJson, FunctionsAppDirectory.FullName)), "InvalidFunctionAppDirectory", ErrorCategory.ParserError, null));
                }

                List<FunctionInformation> bindingInformations = WorkerIndexingHelper.IndexFunctions(FunctionsAppDirectory, out List<ErrorRecord> errors);
                foreach (ErrorRecord error in errors)
                {
                    WriteError(error);
                }

                if (PrettyPrint.IsPresent)
                {
                    outputJson = JsonSerializer.Serialize(bindingInformations, new JsonSerializerOptions { WriteIndented = true });
                }
                else
                {
                    outputJson = JsonSerializer.Serialize(bindingInformations);
                }
            }
            catch (Exception ex)
            {
                ThrowTerminatingError(new ErrorRecord(ex, "FailToIndexFunctionApp", ErrorCategory.ParserError, null));
            }
        }