trait IOApp
App
type that runs a cats.effect.IO. Shutdown occurs after
the IO
completes, as follows:
App
type that runs a cats.effect.IO. Shutdown occurs after
the IO
completes, as follows:
-
If completed with
ExitCode.Success
, the main method exits and shutdown is handled by the platform. -
If completed with any other ExitCode,
sys.exit
is called with the specified code. -
If the
IO
raises an error, the stack trace is printed to standard error andsys.exit(1)
is called.
When a shutdown is requested via a signal, the IO
is canceled and
we wait for the IO
to release any resources. The process exits
with the numeric value of the signal plus 128.
import cats.effect._
import cats.syntax.all._
object MyApp extends IOApp {
def run(args: List[String]): IO[ExitCode] =
args.headOption match {
case Some(name) =>
IO(println(s"Hello, ${name}.")).as(ExitCode.Success)
case None =>
IO(System.err.println("Usage: MyApp name")).as(ExitCode(2))
}
}
- Companion
- object
Value members
Abstract methods
Produces the IO
to be run as an app.
Produces the IO
to be run as an app.
- Returns
the cats.effect.ExitCode the JVM exits with