From 9b5738476c594d61b683dd6af6a89f981b18cb24 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 13 Jun 2024 12:21:26 +0200 Subject: [PATCH] Gradle: log which application is built. --- app/build.gradle.kts | 1 + plugins/src/main/kotlin/Logger.kt | 55 +++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 plugins/src/main/kotlin/Logger.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b980965753..58110245cd 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -109,6 +109,7 @@ android { } else { "Element X" } + logger.warnInBox("Building $baseAppName") buildTypes { getByName("debug") { diff --git a/plugins/src/main/kotlin/Logger.kt b/plugins/src/main/kotlin/Logger.kt new file mode 100644 index 0000000000..fa608e7df4 --- /dev/null +++ b/plugins/src/main/kotlin/Logger.kt @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2024 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import org.gradle.api.logging.Logger +import kotlin.math.max + +fun Logger.warnInBox( + text: String, + minBoxWidth: Int = 80, + padding: Int = 4, +) { + val textLength = text.length + val boxWidth = max(textLength + 2, minBoxWidth) + val textPadding = max((boxWidth - textLength) / 2, 1) + warn( + buildString { + append(" ".repeat(padding)) + append("┌") + append("─".repeat(boxWidth)) + append("┐") + } + ) + warn( + buildString { + append(" ".repeat(padding)) + append("│") + append(" ".repeat(textPadding)) + append(text) + append(" ".repeat(textPadding)) + if (textLength % 2 == 1 && boxWidth == minBoxWidth) append(" ") + append("│") + } + ) + warn( + buildString { + append(" ".repeat(padding)) + append("└") + append("─".repeat(boxWidth)) + append("┘") + } + ) +}