diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverConfig.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverConfig.kt index af6e12a..d27d57a 100644 --- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverConfig.kt +++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverConfig.kt @@ -43,7 +43,6 @@ open class SemverConfig { const val DEFAULT_BUILDMETA_KEY = "buildmeta" const val DEFAULT_BUILDMETA_PREFIX_KEY = "buildmeta.prefix" const val DEFAULT_SEPARATOR = "separator" - const val DEFAULT_SAVE_AFTER_PROJECT_EVALUATE = true } var properties = DEFAULT_PROPERTIES @@ -64,5 +63,4 @@ open class SemverConfig { var separatorKey = DEFAULT_SEPARATOR get() = "$keysPrefix$field" var keysPrefix = DEFAULT_KEYS_PREFIX - var saveAfterProjectEvaluate = DEFAULT_SAVE_AFTER_PROJECT_EVALUATE } diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt index 67a05e1..1b78411 100644 --- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt +++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt @@ -110,11 +110,15 @@ class SemverPlugin : Plugin { propsFile.apply { project.logger.info( "[$simpleName] Attempting to read properties from: `$absoluteFile`. [exists: ${exists()}, isFile: $isFile, canRead: ${canRead()}]") + var hasReqProps = false if (canRead() && isFile) { FileInputStream(this).reader().use { reader -> Properties().apply { load(reader) + hasReqProps = stringPropertyNames().containsAll(setOf(config.majorKey, config.minorKey, + config.patchKey, config.preReleaseKey, config.buildMetaKey)) + version.major = getProperty(config.majorKey, Version.DEFAULT_MAJOR) version.minor = getProperty(config.minorKey, Version.DEFAULT_MINOR) version.patch = getProperty(config.patchKey, Version.DEFAULT_PATCH) @@ -136,8 +140,9 @@ class SemverPlugin : Plugin { } project.version = version.semver project.logger.info("[$simpleName] Project version set to: ${project.version}") - // If first time running and there is no props file, and saveAfterEvaluate is false, then version props would never have been saved before - if (config.saveAfterProjectEvaluate || !isFile) { + if (!hasReqProps || !isFile) { + // If first time running and there is no props file, and the required version properties are missing, + // then version props would never have been saved before saveProperties(config, version) } }