From e3de699d8b75404fd2044f7616a06a951adf934d Mon Sep 17 00:00:00 2001 From: Hakon Arneng Holmstedt Date: Thu, 1 Feb 2024 14:54:41 +0100 Subject: [PATCH] =?UTF-8?q?Bygg-task=20for=20=C3=A5=20tegne=20bokser=20og?= =?UTF-8?q?=20piler=20mellom=20moduler=20i=20spleis,=20n=C3=A5=20med=20mul?= =?UTF-8?q?ighet=20til=20=C3=A5=20skrive=20til=20fil=20ELLER=20byggout.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle.kts | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 0ccad89cb0..e71e312d51 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,4 +1,4 @@ -import java.io.PrintStream +import java.io.PrintWriter plugins { kotlin("jvm") version "1.9.22" @@ -76,21 +76,35 @@ subprojects { } } -// supersimpelt første-forsøk -// må copy-pastes inn i Fase1.md -// alle projekter referer til seg selv +/** + * kjør gjerne denne slik: + * + * ./gradlew tegn_modul_graf -Putputt=EnGrad.md + * + * så får du en fin graf under /doc/EnGrad.md + */ tasks.create("tegn_modul_graf") { doLast { - val printer = System.out + val printer: PrintWriter = hentPrinter() printer.println("```mermaid\n") printer.println("classDiagram\n") - this.project.allprojects.forEach { it.listThings(printer) } + this.project.allprojects.forEach { it.listUtModulAvhengigheter(printer) } printer.println("\n```") + printer.flush() + printer.close() } +} +fun hentPrinter() = if (ext.properties["utputt"] != null) { + val paff = "${project.rootDir.absolutePath}/doc/${ext.properties["utputt"]}" + val fail = File(paff) + if (!fail.exists()) { + fail.createNewFile() + } + fail.printWriter() +} else PrintWriter(System.out, true) -} -fun Project.listThings(printer: PrintStream) { +fun Project.listUtModulAvhengigheter(printer: PrintWriter) { val deps = mutableSetOf() this.configurations.forEach { configuration -> if (configuration.dependencies.size > 0) {