Skip to content

Commit 6d68f68

Browse files
authored
find redirection files manually (#491)
1 parent 54e192e commit 6d68f68

File tree

2 files changed

+18
-41
lines changed

2 files changed

+18
-41
lines changed

cleanrepo/Program.cs

+10-1
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ static async Task RunOptions(Options options)
351351
// Remove hops/daisy chains in a redirection file.
352352
case "RemoveRedirectHops":
353353
{
354-
docFxRepo.RemoveAllRedirectHops();
354+
docFxRepo.RemoveAllRedirectHops(options.TargetDirectory);
355355

356356
Console.WriteLine("\nFinished removing redirect hops.");
357357
break;
@@ -1618,6 +1618,15 @@ public static bool IsFileLinkedFromFile(FileInfo linkedFile, FileInfo linkingFil
16181618
return false;
16191619
}
16201620

1621+
/// <summary>
1622+
/// Gets all .openpublishing.redirection.*.json files recursively, starting in the specified directory.
1623+
/// </summary>
1624+
public static List<FileInfo> GetRedirectionFiles(string directoryPath)
1625+
{
1626+
DirectoryInfo dir = new(directoryPath);
1627+
return dir.EnumerateFiles(".openpublishing.redirection.*.json", SearchOption.AllDirectories).ToList();
1628+
}
1629+
16211630
/// <summary>
16221631
/// Gets all *.md files recursively, starting in the specified directory.
16231632
/// </summary>

cleanrepo/Repo.cs

+8-40
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,6 @@ internal FileInfo OpsConfigFile
7575
return _opsConfigFile;
7676
}
7777
}
78-
private List<string>? _redirectionFiles;
79-
internal List<string> RedirectionFiles
80-
{
81-
get
82-
{
83-
if (_redirectionFiles == null)
84-
_redirectionFiles = GetRedirectionFiles();
85-
86-
return _redirectionFiles;
87-
}
88-
}
8978

9079
#region Constructors
9180
#endregion
@@ -318,16 +307,10 @@ internal List<Redirect> GetAllRedirects()
318307
{
319308
// Gather all the redirects.
320309
List<Redirect> allRedirects = [];
321-
foreach (string redirectionFile in RedirectionFiles)
310+
List<FileInfo> redirectionFiles = HelperMethods.GetRedirectionFiles(OpsConfigFile.DirectoryName!);
311+
foreach (FileInfo redirectionFile in redirectionFiles)
322312
{
323-
FileInfo redirectsFile = new(Path.Combine(OpsConfigFile.DirectoryName!, redirectionFile));
324-
if (redirectsFile == null)
325-
{
326-
Console.WriteLine($"\nCould not find redirection file '{redirectionFile}'.");
327-
continue;
328-
}
329-
330-
IList<Redirect>? redirectsFromOneFile = GetAllRedirectedFiles(redirectsFile, OpsConfigFile.DirectoryName!);
313+
IList<Redirect>? redirectsFromOneFile = GetAllRedirectedFiles(redirectionFile, OpsConfigFile.DirectoryName!);
331314
if (redirectsFromOneFile is not null)
332315
allRedirects.AddRange(redirectsFromOneFile);
333316
}
@@ -587,33 +570,18 @@ internal string ConvertImagePathDestToSrc(string currentImagePath)
587570

588571
#region Redirected files
589572

590-
public List<string> GetRedirectionFiles()
591-
{
592-
// Deserialize the OPS config file.
593-
OPSConfig? config = LoadOPSJson();
594-
if (config == null || config.redirection_files == null)
595-
return [".openpublishing.redirection.json"];
596-
else
597-
return config.redirection_files;
598-
}
599-
600-
internal void RemoveAllRedirectHops()
573+
internal void RemoveAllRedirectHops(string directory)
601574
{
602575
// Get all docsets for the OPS config file.
603576
Dictionary<string, string>? docsets = GetDocsetInfo();
604577

578+
List<FileInfo> redirectionFiles = HelperMethods.GetRedirectionFiles(directory);
579+
605580
// Remove hops within each file.
606-
foreach (string redirectionFile in RedirectionFiles)
581+
foreach (FileInfo redirectionFile in redirectionFiles)
607582
{
608-
FileInfo redirectsFile = new(Path.Combine(OpsConfigFile.DirectoryName!, redirectionFile));
609-
if (redirectsFile == null)
610-
{
611-
Console.WriteLine($"\nCould not find redirection file '{redirectionFile}'.");
612-
continue;
613-
}
614-
615583
Console.WriteLine($"\nRemoving hops from the '{redirectionFile}' redirection file.");
616-
RemoveRedirectHopsFromFile(redirectsFile, docsets, OpsConfigFile.DirectoryName!);
584+
RemoveRedirectHopsFromFile(redirectionFile, docsets, OpsConfigFile.DirectoryName!);
617585
}
618586
}
619587

0 commit comments

Comments
 (0)