Skip to content

Commit 1d6910d

Browse files
mergify[bot]Juanjo Garcia
andauthored
Add afunction that checks for repeated -I paths (#429) (#432)
Signed-off-by: Juanjo Garcia <juanjosegarcia@eprosima.com> Co-authored-by: Juanjo Garcia <juanjosegarcia@eprosima.com>
1 parent 1ad57cf commit 1d6910d

File tree

1 file changed

+44
-1
lines changed

1 file changed

+44
-1
lines changed

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

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,11 @@
4040
import java.io.FileOutputStream;
4141
import java.io.IOException;
4242
import java.io.InputStream;
43+
import java.io.IOError;
4344
import java.io.InputStreamReader;
4445
import java.io.OutputStream;
46+
import java.nio.file.InvalidPathException;
47+
import java.nio.file.Path;
4548
import java.nio.file.Paths;
4649
import java.util.ArrayList;
4750
import java.util.List;
@@ -282,7 +285,11 @@ else if (arg.equals("-I"))
282285
{
283286
if (count < args.length)
284287
{
285-
m_includePaths.add("-I".concat(args[count++]));
288+
String pathStr = args[count++];
289+
if (!isIncludePathDuplicated(pathStr))
290+
{
291+
m_includePaths.add("-I".concat(pathStr));
292+
}
286293
}
287294
else
288295
{
@@ -510,6 +517,42 @@ private void showVersion()
510517
System.out.println(m_appName + " version " + version);
511518
}
512519

520+
private boolean isIncludePathDuplicated(String pathToCheck)
521+
{
522+
try
523+
{
524+
Path path = Paths.get(pathToCheck);
525+
String absPath = path.toAbsolutePath().toString();
526+
boolean isDuplicateFound = false;
527+
for (String includePath : m_includePaths)
528+
{
529+
// include paths are prefixed with "-I"
530+
if (includePath.length() <= 2)
531+
{
532+
continue;
533+
}
534+
String absIncludePath = Paths.get(includePath.substring(2)).toAbsolutePath().toString();
535+
if (absPath.toLowerCase().equals(absIncludePath.toLowerCase()))
536+
{
537+
isDuplicateFound = true;
538+
break;
539+
}
540+
}
541+
542+
if (isDuplicateFound)
543+
{
544+
return true;
545+
}
546+
547+
}
548+
catch (InvalidPathException | IOError | SecurityException ex)
549+
{
550+
// path operations failed, just returning false
551+
}
552+
553+
return false;
554+
}
555+
513556
public static void printHelp()
514557
{
515558
System.out.println(m_appName + " usage:");

0 commit comments

Comments
 (0)