override fun registerDirectoryCleaners()

in plugin-dotnet-agent/src/main/kotlin/jetbrains/buildServer/agent/runner/CacheCleanerSessionImpl.kt [21:51]


    override fun registerDirectoryCleaners(context: DirectoryCleanersProviderContext, registry: DirectoryCleanersRegistry) {
        val now = Instant.now()
        val targets = mutableSetOf<File>()
        for (cleaner in _cleaners) {
            val fullName = "${DotnetConstants.CLEANER_NAME} for ${cleaner.name}"
            val date = Date.from(now.minus(Duration.ofDays(cleaner.type.weight)))
            LOG.info("Register $fullName.")
            for (target in cleaner.targets) {
                if (targets.add(target)) {
                    registry.addCleaner(
                            target,
                            date,
                            Runnable {
                                LOG.info("Cleaning \"$target\" by $fullName.")
                                try {
                                    if (cleaner.clean(target)) {
                                        LOG.info("Path \"$target\" has been cleaned by $fullName.")
                                    } else {
                                        LOG.warn("Path \"$target\" has not been cleaned by $fullName.")                                    }
                                } catch (error: Throwable) {
                                    LOG.error("Path \"$target\" has not been cleaned by $fullName.", error)
                                }
                            })

                    LOG.info("Path \"$target\" is added by $fullName.")
                } else {
                    LOG.info("Path \"$target\" is already added.")
                }
            }
        }
    }