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));
}
}