Skip to content

Commit bb44c0f

Browse files
mergify[bot]Juanjo Garcia
andauthored
Add afunction that checks for repeated -I paths (#429) (#430)
* Refs #13740: Solved mergify conflict #430 Signed-off-by: Juanjo Garcia <juanjosegarcia@eprosima.com> * Refs #13740: corrected typo Signed-off-by: Juanjo Garcia <juanjosegarcia@eprosima.com> --------- Signed-off-by: Juanjo Garcia <juanjosegarcia@eprosima.com> Co-authored-by: Juanjo Garcia <juanjosegarcia@eprosima.com>
1 parent e53360c commit bb44c0f

File tree

1 file changed

+43
-1
lines changed

1 file changed

+43
-1
lines changed

src/main/java/com/eprosima/fastdds/fastddsgen.java

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,10 @@
4141
import java.io.FileOutputStream;
4242
import java.io.IOException;
4343
import java.io.InputStream;
44+
import java.io.IOError;
4445
import java.io.InputStreamReader;
4546
import java.io.OutputStream;
47+
import java.nio.file.InvalidPathException;
4648
import java.nio.file.Files;
4749
import java.nio.file.Path;
4850
import java.nio.file.Paths;
@@ -310,7 +312,11 @@ else if (arg.equals("-I"))
310312
{
311313
if (count < args.length)
312314
{
313-
m_includePaths.add("-I".concat(args[count++]));
315+
String pathStr = args[count++];
316+
if (!isIncludePathDuplicated(pathStr))
317+
{
318+
m_includePaths.add("-I".concat(pathStr));
319+
}
314320
}
315321
else
316322
{
@@ -551,6 +557,42 @@ private void showVersion()
551557
System.out.println(m_appName + " version " + version);
552558
}
553559

560+
private boolean isIncludePathDuplicated(String pathToCheck)
561+
{
562+
try
563+
{
564+
Path path = Paths.get(pathToCheck);
565+
String absPath = path.toAbsolutePath().toString();
566+
boolean isDuplicateFound = false;
567+
for (String includePath : m_includePaths)
568+
{
569+
// include paths are prefixed with "-I"
570+
if (includePath.length() <= 2)
571+
{
572+
continue;
573+
}
574+
String absIncludePath = Paths.get(includePath.substring(2)).toAbsolutePath().toString();
575+
if (absPath.toLowerCase().equals(absIncludePath.toLowerCase()))
576+
{
577+
isDuplicateFound = true;
578+
break;
579+
}
580+
}
581+
582+
if (isDuplicateFound)
583+
{
584+
return true;
585+
}
586+
587+
}
588+
catch (InvalidPathException | IOError | SecurityException ex)
589+
{
590+
// path operations failed, just returning false
591+
}
592+
593+
return false;
594+
}
595+
554596
public static void printHelp()
555597
{
556598
System.out.println(m_appName + " usage:");

0 commit comments

Comments
 (0)