in packages/autorest.python/scripts/eng/regenerate.ts [160:201]
async function searchDir(currentDir: string) {
const items = await promises.readdir(currentDir, { withFileTypes: true });
const promisesArray = items.map(async (item) => {
const subDirPath = join(currentDir, item.name);
if (item.isDirectory()) {
const mainTspPath = join(subDirPath, "main.tsp");
const clientTspPath = join(subDirPath, "client.tsp");
const mainTspRelativePath = toPosix(relative(baseDir, mainTspPath));
if (flags.flavor === "unbranded" && mainTspRelativePath.includes("azure")) return;
// after fix test generation for nested operation group, remove this check
if (mainTspRelativePath.includes("client-operation-group")) return;
const hasMainTsp = await promises
.access(mainTspPath)
.then(() => true)
.catch(() => false);
const hasClientTsp = await promises
.access(clientTspPath)
.then(() => true)
.catch(() => false);
if (mainTspRelativePath.toLowerCase().includes(flags.name || "")) {
if (mainTspRelativePath.includes("resiliency/srv-driven")) {
subdirectories.push(resolve(subDirPath, "old.tsp"));
}
if (hasClientTsp) {
subdirectories.push(resolve(subDirPath, "client.tsp"));
} else if (hasMainTsp) {
subdirectories.push(resolve(subDirPath, "main.tsp"));
}
}
// Recursively search in the subdirectory
await searchDir(subDirPath);
}
});
await Promise.all(promisesArray);
}