Skip to content

Commit 01b9045

Browse files
committed
* catch other exceptions of libgit2sharp and return false
* fix deps resolving
1 parent 5643c2d commit 01b9045

1 file changed

Lines changed: 15 additions & 10 deletions

File tree

src/Rosidl.Generator.CSharp/CSharpCodeGenerator.cs

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ private static int Generate(ParseSpec spec, string baseDir, bool detailed = fals
260260
var unresolved = new List<string>();
261261
while (true)
262262
{
263-
var deps = ResolveDependencies(inclPkgs, rawPkgs, spec);
263+
var deps = ResolveDependencies(inclPkgs, spec);
264264
if (deps.Count == 0 || deps.All(unresolved.Contains)) break;
265265

266266
foreach (var dep in deps)
@@ -531,9 +531,14 @@ private static bool TryGetGitCommitHash(string packageRoot, out string? sha1, in
531531
}
532532
return false;
533533
}
534+
catch (Exception ex)
535+
{
536+
Console.WriteLine($"Warning: Unable to get git commit hash for package at '{packageRoot}': {ex.Message}");
537+
return false;
538+
}
534539
}
535540

536-
private static List<string> ResolveDependencies(Dictionary<string, Package> inclPkgs, Dictionary<string, string> rawPkgs, ParseSpec spec)
541+
private static List<string> ResolveDependencies(Dictionary<string, Package> inclPkgs, ParseSpec spec)
537542
{
538543
var missing = new List<string>();
539544

@@ -548,12 +553,12 @@ private static List<string> ResolveDependencies(Dictionary<string, Package> incl
548553

549554
if (metadata is MessageMetadata m)
550555
{
551-
ResolveFields(rawPkgs, m.Fields, missing);
556+
ResolveFields(inclPkgs, m.Fields, missing);
552557
}
553558
else if (metadata is ServiceMetadata s)
554559
{
555-
ResolveFields(rawPkgs, s.RequestFields, missing);
556-
ResolveFields(rawPkgs, s.ResponseFields, missing);
560+
ResolveFields(inclPkgs, s.RequestFields, missing);
561+
ResolveFields(inclPkgs, s.ResponseFields, missing);
557562

558563
if (spec.EnableServiceIntrospection)
559564
{
@@ -562,9 +567,9 @@ private static List<string> ResolveDependencies(Dictionary<string, Package> incl
562567
}
563568
else if (metadata is ActionMetadata a)
564569
{
565-
ResolveFields(rawPkgs, a.GoalFields, missing);
566-
ResolveFields(rawPkgs, a.ResultFields, missing);
567-
ResolveFields(rawPkgs, a.FeedbackFields, missing);
570+
ResolveFields(inclPkgs, a.GoalFields, missing);
571+
ResolveFields(inclPkgs, a.ResultFields, missing);
572+
ResolveFields(inclPkgs, a.FeedbackFields, missing);
568573

569574
if (spec.EnableServiceIntrospection)
570575
{
@@ -584,14 +589,14 @@ private static List<string> ResolveDependencies(Dictionary<string, Package> incl
584589

585590
void Requires(string package)
586591
{
587-
if (!rawPkgs.ContainsKey(package) && !missing.Contains(package))
592+
if (!inclPkgs.ContainsKey(package) && !missing.Contains(package))
588593
{
589594
missing.Add(package);
590595
}
591596
}
592597
}
593598

594-
private static void ResolveFields(Dictionary<string, string> packages, IEnumerable<FieldMetadata> fields, List<string> missingDependencies)
599+
private static void ResolveFields(Dictionary<string, Package> packages, IEnumerable<FieldMetadata> fields, List<string> missingDependencies)
595600
{
596601
foreach (var f in fields)
597602
{

0 commit comments

Comments
 (0)