in caches-cleanup-plugin-agent/src/main/kotlin/github/nskvortsov/teamcity/cleanup/ConfigurableCachesCleanerProvider.kt [21:50]
override fun registerDirectoryCleaners(context: DirectoryCleanersProviderContext, registry: DirectoryCleanersRegistry) {
log.debug("Configurable cache cleaner: register dir cleaners")
val disabled = context.hasExplicitFalse(ENABLED_PROPERTY)
if (disabled) {
log.info("Configurable cleaner is disabled, skipping.")
return
}
val property = context.runningBuild.sharedConfigParameters[DIRECTORIES_PROPERTY]
?: return log.info("Configurable cleaner skipped: '$DIRECTORIES_PROPERTY' property undefined.")
val home = System.getProperty("user.home")
?: return log.warn("Failed to detect user home directory, system property 'user.home' is not present")
val candidates: List<String> = property.split(",")
.map { it.trim() }
.filter { it.isNotEmpty() }
log.debug("Configurable cleaner: dirs to cleanup: $candidates")
val shouldRemoveRoots = context.runningBuild.sharedConfigParameters[REMOVE_ROOTS] ?: "true"
for (path in candidates) {
val dir = File(replaceHomeDir(path, home))
log.debug("Checking if '$path' exists")
if (dir.exists() && dir.isDirectory) {
log.debug("Found '$path', registering cleaner.")
registry.addCleaner(dir, Date(), Cleaner(dir, log, shouldRemoveRoots.toBoolean()))
}
}
}