in src/Commands/GlobalCommand.cs [153:189]
protected virtual string GetCommandPath()
{
// Get the command type name without the "Command" suffix
string commandName = GetType().Name.Replace("Command", "");
// Get the namespace to determine the service name
string namespaceName = GetType().Namespace ?? "";
string serviceName = "";
// Extract service name from namespace (e.g., AzureMcp.Commands.Cosmos -> cosmos)
if (!string.IsNullOrEmpty(namespaceName) && namespaceName.Contains(".Commands."))
{
string[] parts = namespaceName.Split(".Commands.");
if (parts.Length > 1)
{
string[] subParts = parts[1].Split('.');
if (subParts.Length > 0)
{
serviceName = subParts[0].ToLowerInvariant();
}
}
}
// Insert spaces before capital letters in the command name
string formattedName = string.Concat(commandName.Select(x => char.IsUpper(x) ? " " + x : x.ToString())).Trim();
// Convert to lowercase and replace spaces with spaces (for readability in command examples)
string commandPath = formattedName.ToLowerInvariant().Replace(" ", " ");
// Prepend the service name if available
if (!string.IsNullOrEmpty(serviceName))
{
commandPath = serviceName + " " + commandPath;
}
return commandPath;
}