override fun registerDirectoryCleaners()

in caches-cleanup-plugin-agent/src/main/kotlin/github/nskvortsov/teamcity/cleanup/NPMCacheCleanerProvider.kt [24:45]


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

        val npmRepo: File =
                if (SystemInfo.isWindows) {
                    File(getAppDataOrHome(home), "npm-cache")
                } else {
                    File("$home/.npm")
                }
        log.debug("Checking if [${npmRepo.absolutePath}] exists")
        if (npmRepo.exists()) {
            log.debug("NPM cache found at '${npmRepo.path}', registering cleaner.")
            registry.addCleaner(npmRepo, Date(), Cleaner(npmRepo, log))
        }
    }