From b75fcffb58ac3b338fc8ebbfb4eb841c59a40709 Mon Sep 17 00:00:00 2001
From: "piotr.suwala" <piotr.suwala@kinguin.net>
Date: Wed, 17 Apr 2024 21:27:17 +0200
Subject: [PATCH] fixed bug + added more debug info pzdr

---
 .../kotlin/sh/hsp/techtree/graphviz/DSLConverter.kt    | 10 +++++-----
 .../sh/hsp/techtree/graphviz/GraphvizCommandRunner.kt  |  1 +
 .../hsp/techtree/graphviz/SimpleGraphvizConverter.kt   |  1 +
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/main/kotlin/sh/hsp/techtree/graphviz/DSLConverter.kt b/src/main/kotlin/sh/hsp/techtree/graphviz/DSLConverter.kt
index d9bda93..b3305d2 100644
--- a/src/main/kotlin/sh/hsp/techtree/graphviz/DSLConverter.kt
+++ b/src/main/kotlin/sh/hsp/techtree/graphviz/DSLConverter.kt
@@ -10,16 +10,16 @@ class DSLConverter {
             .map { registerNode(it) }
             .collect(Collectors.joining(" "))
 
-        return "digraph { graph [splines=\"ortho\"] node [shape=\"box\"] edge [dir=\"back\"] $nodesAsDSL }"
+        return "digraph { graph [splines=\"ortho\"] node [shape=\"box\"] edge [dir=\"back\"] \n $nodesAsDSL }"
     }
 
     private fun registerNode(node: TreeNode): String {
-        val pathsToChildren = node.requires?.apply {
-            stream()
+        val pathsToChildren = node.requires?.let {require ->
+            require.stream()
                 .map { "${node.title.escaped()} -> ${it.escaped()}" }
                 .collect(Collectors.joining(" "))
-        } ?: listOf()
-        return "${node.title.escaped()} ${node.link?.let { "[ href=${it.escaped()} fontcolor=blue]" } ?: ""} $pathsToChildren"
+        } ?: ""
+        return "${node.title.escaped()} ${node.link?.let { "[ href=${it.escaped()} fontcolor=blue ]" } ?: ""} $pathsToChildren \n"
     }
 
     private fun String.escaped(): String = "\"$this\""
diff --git a/src/main/kotlin/sh/hsp/techtree/graphviz/GraphvizCommandRunner.kt b/src/main/kotlin/sh/hsp/techtree/graphviz/GraphvizCommandRunner.kt
index 14f2b65..b96fa49 100644
--- a/src/main/kotlin/sh/hsp/techtree/graphviz/GraphvizCommandRunner.kt
+++ b/src/main/kotlin/sh/hsp/techtree/graphviz/GraphvizCommandRunner.kt
@@ -8,6 +8,7 @@ class GraphvizCommandRunner {
     fun run(dsl: String) {
         ProcessBuilder()
             .redirectOutput(ProcessBuilder.Redirect.INHERIT)
+            .redirectError(ProcessBuilder.Redirect.INHERIT)
             .command("dot", "-Tsvg").start()
             .apply {
                 outputStream.writer()
diff --git a/src/main/kotlin/sh/hsp/techtree/graphviz/SimpleGraphvizConverter.kt b/src/main/kotlin/sh/hsp/techtree/graphviz/SimpleGraphvizConverter.kt
index 8f20738..3034c3b 100644
--- a/src/main/kotlin/sh/hsp/techtree/graphviz/SimpleGraphvizConverter.kt
+++ b/src/main/kotlin/sh/hsp/techtree/graphviz/SimpleGraphvizConverter.kt
@@ -9,6 +9,7 @@ class SimpleGraphvizConverter(
 ) : GraphvizConverter {
     override fun convert(model: TreeModel) {
         val dsl = dslConverter.convert(model)
+        System.err.println(dsl)
         commandRunner.run(dsl)
     }
 }
\ No newline at end of file