diff --git a/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/internal/Logger.kt b/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/internal/Logger.kt index 743e9b3..0e09fd1 100644 --- a/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/internal/Logger.kt +++ b/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/internal/Logger.kt @@ -26,26 +26,34 @@ package com.highcapable.gropify.internal import com.highcapable.gropify.plugin.Gropify import org.gradle.api.Project import org.gradle.api.logging.Logger -import kotlin.properties.Delegates /** * Gropify logger. */ -internal object Logger { +internal class Logger private constructor() { - private var logger by Delegates.notNull() + internal companion object { - /** - * Initialize logger with project. - * @param project the project. - * @return [Logger] - */ - fun init(project: Project) = apply { - logger = project.logger + /** + * Create logger with project. + * @param project the project. + * @return [Logger] + */ + fun with(project: Project) = Logger().apply { + logger = project.logger + } + + /** + * Create empty logger instance. + * @return [Logger] + */ + fun get() = Logger() } - internal fun debug(msg: Any) = logger.debug("[${Gropify.TAG}] $msg") - internal fun info(msg: Any) = logger.info("[${Gropify.TAG}] $msg") - internal fun warn(msg: Any) = logger.warn("[${Gropify.TAG}] $msg") - internal fun error(msg: Any) = logger.error("[${Gropify.TAG}] $msg") + private var logger: Logger? = null + + internal fun debug(msg: Any) = "[${Gropify.TAG}][DEBUG] $msg".let { logger?.debug(it) ?: println(it) } + internal fun info(msg: Any) = "[${Gropify.TAG}][INFO] $msg".let { logger?.info(it) ?: println(it) } + internal fun warn(msg: Any) = "[${Gropify.TAG}][WARN] $msg".let { logger?.warn(it) ?: println(it) } + internal fun error(msg: Any) = "[${Gropify.TAG}][ERROR] $msg".let { logger?.error(it) ?: println(it) } } \ No newline at end of file diff --git a/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/GropifyLifecycle.kt b/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/GropifyLifecycle.kt index c87119a..0ee3ed4 100644 --- a/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/GropifyLifecycle.kt +++ b/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/GropifyLifecycle.kt @@ -24,7 +24,6 @@ package com.highcapable.gropify.plugin import com.highcapable.gropify.gradle.api.GradleDescriptor import com.highcapable.gropify.gradle.api.extension.getOrCreate import com.highcapable.gropify.gradle.api.plugin.PluginLifecycle -import com.highcapable.gropify.internal.Logger import com.highcapable.gropify.internal.error import com.highcapable.gropify.plugin.extension.dsl.configure.GropifyConfigureExtension import org.gradle.api.Project @@ -50,7 +49,6 @@ internal class GropifyLifecycle : PluginLifecycle { } override fun beforeProjectEvaluate(rootProject: Project) { - Logger.init(rootProject) DefaultDeployer.resolve(rootProject) } diff --git a/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/GropifyPlugin.kt b/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/GropifyPlugin.kt index 2f6e8c0..58fe83a 100644 --- a/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/GropifyPlugin.kt +++ b/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/GropifyPlugin.kt @@ -56,7 +56,7 @@ class GropifyPlugin internal constructor() : Plugin { } } } - is Project -> Logger.init(target).error( + is Project -> Logger.with(target).error( "Gropify can only applied in settings.gradle or settings.gradle.kts, but current is $target, stop loading.", ) else -> Gropify.error("Gropify applied to an unknown target: $target, stop loading.") diff --git a/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/deployer/BuildscriptDeployer.kt b/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/deployer/BuildscriptDeployer.kt index f4ba1c1..b2a338c 100644 --- a/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/deployer/BuildscriptDeployer.kt +++ b/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/deployer/BuildscriptDeployer.kt @@ -82,7 +82,7 @@ internal class BuildscriptDeployer(private val _config: () -> GropifyConfig) : D ) return cachedSettingsProperties = allProperties - buildscriptGenerator.build(allConfig, allProperties).compile( + buildscriptGenerator.build(config, allConfig, allProperties).compile( buildscriptAccessorsDependency, buildscriptAccessorsDir.absolutePath, buildscriptGenerator.compileStubFiles diff --git a/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/deployer/SourceCodeDeployer.kt b/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/deployer/SourceCodeDeployer.kt index 797ec22..8671456 100644 --- a/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/deployer/SourceCodeDeployer.kt +++ b/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/deployer/SourceCodeDeployer.kt @@ -157,7 +157,7 @@ internal class SourceCodeDeployer(private val _config: () -> GropifyConfig) : De it?.asResolver()?.optional(!debugMode)?.firstMethodOrNull { name = "getName" }?.invokeQuietly() == config.sourceSetName - } ?: return Logger.warn( + } ?: return Logger.with(project).warn( "Could not found source sets \"${config.sourceSetName}\" in project '${project.getFullName()}' ($projectType)." ) @@ -179,7 +179,7 @@ internal class SourceCodeDeployer(private val _config: () -> GropifyConfig) : De parameters(Any::class) superclass() } - resolver?.invokeQuietly(generateDirPath) ?: Logger.error( + resolver?.invokeQuietly(generateDirPath) ?: Logger.with(project).error( "Project '${project.getFullName()}' source sets deployed failed, method \"srcDir\" maybe failed during the processing." ) } diff --git a/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/helper/AndroidProjectHelper.kt b/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/helper/AndroidProjectHelper.kt index e726185..78b65f2 100644 --- a/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/helper/AndroidProjectHelper.kt +++ b/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/helper/AndroidProjectHelper.kt @@ -73,7 +73,7 @@ internal object AndroidProjectHelper { }.onFailure { // If file broken, reset it. namespacesFile.writeText("{}") - Logger.warn("Android project namespaces file was broken and has been reset.") + Logger.with(this).warn("Android project namespaces file was broken and has been reset.") }.getOrDefault(hashMapOf()) val namespace = getExtensionNamespace()