IOApp

trait IOApp
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 and sys.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
class Object
trait Matchable
class Any

Value members

Methods

def run(args: List[String]): IO[ExitCode]
Produces the IO to be run as an app.
Returns
the cats.effect.ExitCode the JVM exits with
def main(args: Array[String]): Unit
The main method that runs the IO returned by run and exits
the app with the resulting code on completion.