override fun registerDirectoryCleaners()

in caches-cleanup-plugin-agent/src/main/kotlin/github/nskvortsov/teamcity/cleanup/HeapDumpsAtHomeCleanerProvider.kt [18:37]


    override fun registerDirectoryCleaners(
        context: DirectoryCleanersProviderContext,
        registry: DirectoryCleanersRegistry
    ) {
        log.debug("heap dumps at home cleaner: register dir cleaners")
        val disabled = context.hasExplicitFalse("teamcity.cleaners.heapdumps.enabled")
        if (disabled) {
            log.info("heap dumps at home cleaner is disabled, skipping.")
            return
        }
        val home = System.getProperty("user.home")?.let { File(it) }
            ?: return log.warn("Failed to detect user home directory, system property 'user.home' is not present")

        log.debug("Checking if hprof files present in the home directory")
        val dumps = home.list(filter)
        if (dumps != null && dumps.isNotEmpty()) {
            log.debug("Heap dumps found, registering cleaner.")
            registry.addCleaner(home, Date(), HeapDumpsCleaner(home, log))
        }
    }