#!/usr/bin/php
<?php
require(__DIR__.'/../vendor/autoload.php');

use nur\cli\Application;
use nur\sery\output\IMessenger;
use nur\sery\output\msg;
use nur\sery\ValueException;

Application::run(new class extends Application {
  function main() {
    msg::title("major", function (IMessenger $msg) {
      $msg->error("error", msg::MAJOR);
      $msg->warning("warning", msg::MAJOR);
      $msg->note("note", msg::MAJOR);
      $msg->info("info", msg::MAJOR);
      $msg->info(new ValueException("exception"), msg::MAJOR);
    }, msg::MAJOR);
    msg::title("normal", function (IMessenger $msg) {
      $msg->error("error", msg::NORMAL);
      $msg->warning("warning", msg::NORMAL);
      $msg->note("note", msg::NORMAL);
      $msg->info("info", msg::NORMAL);
      $msg->info(new ValueException("exception"), msg::NORMAL);
    }, msg::NORMAL);
    msg::title("minor", function (IMessenger $msg) {
      $msg->error("error", msg::MINOR);
      $msg->warning("warning", msg::MINOR);
      $msg->note("note", msg::MINOR);
      $msg->info("info", msg::MINOR);
      $msg->info(new ValueException("exception"), msg::MINOR);
    }, msg::MINOR);
    msg::title("debug", function (IMessenger $msg) {
      $msg->error("error", msg::DEBUG);
      $msg->warning("warning", msg::DEBUG);
      $msg->note("note", msg::DEBUG);
      $msg->info("info", msg::DEBUG);
      $msg->info(new ValueException("exception"), msg::DEBUG);
    }, msg::DEBUG);
  }
});
