All Downloads are FREE. Search and download functionalities are using the official Maven repository.

dev.chopsticks.testkit.ManagedSystemProperties.scala Maven / Gradle / Ivy

There is a newer version: 3.12.0
Show newest version
package dev.chopsticks.testkit

import com.typesafe.config.ConfigFactory
import zio.{UIO, ZIO, ZManaged}

trait ManagedSystemProperties {
  def manageSystemProperties[R, E, A](props: Map[String, String])(use: => ZIO[R, E, A]): ZIO[R, E, A] = {
    ZManaged
      .make {
        UIO {
          val _ = sys.props ++= props
          ConfigFactory.invalidateCaches()
        }
      } { _ =>
        UIO {
          props.keys.foreach(sys.props.remove)
          ConfigFactory.invalidateCaches()
        }
      }.use(_ => use)
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy