459 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			459 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/php
 | |
| <?php
 | |
| require(__DIR__.'/../vendor/autoload.php');
 | |
| 
 | |
| use nulib\output\IMessenger;
 | |
| use nulib\output\std\ConsoleMessenger;
 | |
| use nulib\output\std\LogMessenger;
 | |
| use nulib\UserException;
 | |
| 
 | |
| $class = ConsoleMessenger::class;
 | |
| $params = [];
 | |
| $count = count($argv) - 1;
 | |
| for ($i = 1; $i <= $count; $i++) {
 | |
|   switch ($argv[$i]) {
 | |
|   case "--console": $class = ConsoleMessenger::class; break;
 | |
|   case "--log": $class = LogMessenger::class; break;
 | |
|   case "--id": $i++; $params["id"] = $argv[$i]; break;
 | |
|   case "-L": $i++; $params["output"] = $argv[$i]; break;
 | |
|   case "-i": $i++; $params["id"] = $argv[$i]; break;
 | |
|   case "--show-ids": $params["show_ids"] = true; break;
 | |
|   case "-t": $params["add_date"] = true; break;
 | |
|   case "-n": $params["color"] = false; break;
 | |
|   case "+n": $params["color"] = true; break;
 | |
|   case "-d": $params["debug"] = true; break;
 | |
|   case "+d": $params["debug"] = false; break;
 | |
|   case "-D": $params["default_level"] = "debug"; break;
 | |
|   case "-m": $params["default_level"] = "minor"; break;
 | |
|   case "-M": $params["default_level"] = "major"; break;
 | |
|   case "--show-debug":
 | |
|   case "--sd": $params["min_level"] = "debug"; break;
 | |
|   case "--show-minor":
 | |
|   case "--verbose":
 | |
|   case "--sm": $params["min_level"] = "minor"; break;
 | |
|   case "--show-normal":
 | |
|   case "--sn": $params["min_level"] = "normal"; break;
 | |
|   case "--show-major":
 | |
|   case "--quiet":
 | |
|   case "--sM": $params["min_level"] = "major"; break;
 | |
|   case "--show-none":
 | |
|   case "--silent":
 | |
|   case "--sx": $params["min_level"] = "none"; break;
 | |
|   }
 | |
| }
 | |
| $msg = new $class($params);
 | |
| 
 | |
| ###############################################################################
 | |
| 
 | |
| $delay = 1;
 | |
| $titles = 0;
 | |
| $maxTitleLevel = 0;
 | |
| $actions = 0;
 | |
| $maxActionLevel = 0;
 | |
| $levels = 0;
 | |
| $complete = 0;
 | |
| $multilines = 0;
 | |
| $exceptions = 0;
 | |
| 
 | |
| if ($delay) {
 | |
|   echo date("Y-m-d\\TH:i:s.u")."\n";
 | |
|   $msg->title("title");
 | |
|   sleep(5);
 | |
|   $msg->info("info");
 | |
|   sleep(5);
 | |
|   $msg->info("info");
 | |
|   $msg->end();
 | |
| 
 | |
|   echo date("Y-m-d\\TH:i:s.u")."\n";
 | |
|   $msg->action("action");
 | |
|   sleep(5);
 | |
|   $msg->info("info");
 | |
|   sleep(5);
 | |
|   $msg->info("info");
 | |
|   $msg->adone();
 | |
| 
 | |
|   echo date("Y-m-d\\TH:i:s.u")."\n";
 | |
|   $msg->action("action");
 | |
|   sleep(5);
 | |
|   $msg->asuccess();
 | |
| 
 | |
|   echo date("Y-m-d\\TH:i:s.u")."\n";
 | |
|   $msg->action("action");
 | |
|   $msg->asuccess("plouf1");
 | |
| 
 | |
|   echo date("Y-m-d\\TH:i:s.u")."\n";
 | |
|   $msg->action("action");
 | |
|   sleep(5);
 | |
|   $msg->asuccess("plouf2");
 | |
| }
 | |
| 
 | |
| if ($titles) {
 | |
|   $msg->title("title0");
 | |
|   $msg->desc("desc0");
 | |
|   $msg->title("title1");
 | |
|   $msg->desc("desc1");
 | |
|   $msg->print("print under title1");
 | |
|   $msg->end();
 | |
|   $msg->print("print under title0");
 | |
|   $msg->end();
 | |
|   $msg->print("print out of title");
 | |
| }
 | |
| 
 | |
| if ($maxTitleLevel) {
 | |
|   $msg->info("test maxTitleLevel");
 | |
|   $msg->title("1first", function(IMessenger $msg) {
 | |
|     $msg->info("1one");
 | |
|     $msg->end();
 | |
|     $msg->info("1two");
 | |
|     $msg->end();
 | |
|     $msg->info("1three");
 | |
|   });
 | |
|   $msg->info("0one");
 | |
|   $msg->end();
 | |
|   $msg->info("0two");
 | |
|   $msg->end();
 | |
|   $msg->info("0three");
 | |
| 
 | |
|   $msg->title("2first", function(IMessenger $msg) {
 | |
|     $msg->title("3second", function(IMessenger $msg) {
 | |
|       $msg->title("4third", function(IMessenger $msg) {
 | |
|         $msg->info("4one");
 | |
|         $msg->end();
 | |
|         $msg->info("4two");
 | |
|         $msg->end();
 | |
|         $msg->info("4three");
 | |
|       });
 | |
|       $msg->info("3four");
 | |
|       $msg->end();
 | |
|       $msg->info("3five");
 | |
|       $msg->end();
 | |
|       $msg->info("3six");
 | |
|     });
 | |
|     $msg->info("2seven");
 | |
|     $msg->end();
 | |
|     $msg->info("2eight");
 | |
|     $msg->end();
 | |
|     $msg->info("2nine");
 | |
|   });
 | |
|   $msg->info("1one");
 | |
|   $msg->end();
 | |
|   $msg->info("1two");
 | |
|   $msg->end();
 | |
|   $msg->info("1three");
 | |
| }
 | |
| 
 | |
| if ($actions) {
 | |
|   $msg->desc("action avec step");
 | |
|   $msg->action("action avec step");
 | |
|   $msg->step("step");
 | |
|   $msg->asuccess("action success");
 | |
| 
 | |
|   $msg->action("action avec step");
 | |
|   $msg->step("step");
 | |
|   $msg->afailure("action failure");
 | |
| 
 | |
|   $msg->action("action avec step");
 | |
|   $msg->step("step");
 | |
|   $msg->adone("action neutral");
 | |
| 
 | |
|   $msg->desc("actions sans step");
 | |
|   $msg->action("action sans step");
 | |
|   $msg->asuccess("action success");
 | |
| 
 | |
|   $msg->action("action sans step");
 | |
|   $msg->afailure("action failure");
 | |
| 
 | |
|   $msg->action("action sans step");
 | |
|   $msg->adone("action neutral");
 | |
| 
 | |
|   $msg->desc("actions imbriquées");
 | |
|   $msg->action("action0");
 | |
|   $msg->action("action1");
 | |
|   $msg->action("action2");
 | |
|   $msg->asuccess("action2 success");
 | |
|   $msg->asuccess("action1 success");
 | |
|   $msg->asuccess("action0 success");
 | |
| 
 | |
|   $msg->desc("action avec step, sans messages");
 | |
|   $msg->action("action avec step, sans messages, success");
 | |
|   $msg->step("step");
 | |
|   $msg->asuccess();
 | |
| 
 | |
|   $msg->action("action avec step, sans messages, failure");
 | |
|   $msg->step("step");
 | |
|   $msg->afailure();
 | |
| 
 | |
|   $msg->action("action avec step, sans messages, done");
 | |
|   $msg->step("step");
 | |
|   $msg->adone();
 | |
| 
 | |
|   $msg->desc("action sans step, sans messages");
 | |
|   $msg->action("action sans step, sans messages, success");
 | |
|   $msg->asuccess();
 | |
| 
 | |
|   $msg->action("action sans step, sans messages, failure");
 | |
|   $msg->afailure();
 | |
| 
 | |
|   $msg->action("action sans step, sans messages, done");
 | |
|   $msg->adone();
 | |
| 
 | |
|   $msg->desc("actions imbriquées, sans messages");
 | |
|   $msg->action("action0");
 | |
|   $msg->action("action1");
 | |
|   $msg->action("action2");
 | |
|   $msg->asuccess();
 | |
|   $msg->asuccess();
 | |
|   $msg->asuccess();
 | |
| }
 | |
| 
 | |
| if ($maxActionLevel) {
 | |
|   $msg->info("test maxActionLevel");
 | |
|   $msg->action("first1", function (IMessenger $msg) {
 | |
|     $msg->info("one");
 | |
|     $msg->end();
 | |
|     $msg->info("two");
 | |
|     $msg->end();
 | |
|     $msg->info("three");
 | |
|   });
 | |
|   $msg->action("first2", function (IMessenger $msg) {
 | |
|     $msg->info("one");
 | |
|     $msg->adone();
 | |
|     $msg->info("two");
 | |
|     $msg->adone();
 | |
|     $msg->info("three");
 | |
|   });
 | |
|   $msg->action("first3", function (IMessenger $msg) {
 | |
|     $msg->action("second", function (IMessenger $msg) {
 | |
|       $msg->action("third", function (IMessenger $msg) {
 | |
|         $msg->info("one");
 | |
|         $msg->end();
 | |
|         $msg->info("two");
 | |
|         $msg->end();
 | |
|         $msg->info("three");
 | |
|       });
 | |
|       $msg->info("four");
 | |
|       $msg->end();
 | |
|       $msg->info("five");
 | |
|       $msg->end();
 | |
|       $msg->info("six");
 | |
|     });
 | |
|     $msg->info("seven");
 | |
|     $msg->end();
 | |
|     $msg->info("eight");
 | |
|     $msg->end();
 | |
|     $msg->info("nine");
 | |
|   });
 | |
|   $msg->info("ten");
 | |
|   $msg->end();
 | |
|   $msg->info("eleven");
 | |
|   $msg->end();
 | |
|   $msg->info("twelve");
 | |
| 
 | |
|   $msg->action("first4", function (IMessenger $msg) {
 | |
|     $msg->action("second", function (IMessenger $msg) {
 | |
|       $msg->action("third", function (IMessenger $msg) {
 | |
|         $msg->info("one");
 | |
|         $msg->adone();
 | |
|         $msg->info("two");
 | |
|         $msg->adone();
 | |
|         $msg->info("three");
 | |
|       });
 | |
|       $msg->info("four");
 | |
|       $msg->adone();
 | |
|       $msg->info("five");
 | |
|       $msg->adone();
 | |
|       $msg->info("six");
 | |
|     });
 | |
|     $msg->info("seven");
 | |
|     $msg->adone();
 | |
|     $msg->info("eight");
 | |
|     $msg->adone();
 | |
|     $msg->info("nine");
 | |
|   });
 | |
|   $msg->info("ten");
 | |
|   $msg->adone();
 | |
|   $msg->info("eleven");
 | |
|   $msg->adone();
 | |
|   $msg->info("twelve");
 | |
| }
 | |
| 
 | |
| if ($levels) {
 | |
|   $msg->info("info");
 | |
|   $msg->note("note");
 | |
|   $msg->warning("warning");
 | |
|   $msg->error("error");
 | |
| }
 | |
| 
 | |
| if ($complete) {
 | |
|   $msg->section("section", function (IMessenger $msg) {
 | |
|     $msg->title("title", function (IMessenger $msg) {
 | |
|       $msg->desc("desc");
 | |
|       $msg->print("print");
 | |
| 
 | |
|       $msg->desc("action avec step");
 | |
|       $msg->action("action avec step", function (IMessenger $msg) {
 | |
|         $msg->step("step");
 | |
|         $msg->asuccess("action success");
 | |
|       });
 | |
| 
 | |
|       $msg->action("action avec step", function (IMessenger $msg) {
 | |
|         $msg->step("step");
 | |
|         $msg->afailure("action failure");
 | |
|       });
 | |
| 
 | |
|       $msg->action("action avec step", function (IMessenger $msg) {
 | |
|         $msg->step("step");
 | |
|         $msg->adone("action done");
 | |
|       });
 | |
| 
 | |
|       $msg->desc("actions sans step");
 | |
|       $msg->action("action sans step", function (IMessenger $msg) {
 | |
|         $msg->asuccess("action success");
 | |
|       });
 | |
| 
 | |
|       $msg->action("action sans step", function (IMessenger $msg) {
 | |
|         $msg->afailure("action failure");
 | |
|       });
 | |
| 
 | |
|       $msg->action("action sans step", function (IMessenger $msg) {
 | |
|         $msg->adone("action done");
 | |
|       });
 | |
| 
 | |
|       $msg->desc("actions imbriquées");
 | |
|       $msg->action("action0", function (IMessenger $msg) {
 | |
|         $msg->action("action1", function (IMessenger $msg) {
 | |
|           $msg->action("action2", function (IMessenger $msg) {
 | |
|             $msg->asuccess("action2 success");
 | |
|           });
 | |
|           $msg->asuccess("action1 success");
 | |
|         });
 | |
|         $msg->asuccess("action0 success");
 | |
|       });
 | |
| 
 | |
|       $msg->desc("action avec step, sans messages");
 | |
|       $msg->action("action avec step, sans messages, success", function (IMessenger $msg) {
 | |
|         $msg->step("step");
 | |
|         $msg->asuccess();
 | |
|       });
 | |
| 
 | |
|       $msg->action("action avec step, sans messages, failure", function (IMessenger $msg) {
 | |
|         $msg->step("step");
 | |
|         $msg->afailure();
 | |
|       });
 | |
| 
 | |
|       $msg->action("action avec step, sans messages, done", function (IMessenger $msg) {
 | |
|         $msg->step("step");
 | |
|         $msg->adone();
 | |
|       });
 | |
| 
 | |
|       $msg->desc("action sans step, sans messages");
 | |
|       $msg->action("action sans step, sans messages, success", function (IMessenger $msg) {
 | |
|         $msg->asuccess();
 | |
|       });
 | |
| 
 | |
|       $msg->action("action sans step, sans messages, failure", function (IMessenger $msg) {
 | |
|         $msg->afailure();
 | |
|       });
 | |
| 
 | |
|       $msg->action("action sans step, sans messages, done", function (IMessenger $msg) {
 | |
|         $msg->adone();
 | |
|       });
 | |
| 
 | |
|       $msg->desc("actions imbriquées, sans messages");
 | |
|       $msg->action("action0", function (IMessenger $msg) {
 | |
|         $msg->action("action1", function (IMessenger $msg) {
 | |
|           $msg->action("action2", function (IMessenger $msg) {
 | |
|             $msg->asuccess();
 | |
|           });
 | |
|           $msg->asuccess();
 | |
|         });
 | |
|         $msg->asuccess();
 | |
|       });
 | |
| 
 | |
|       $msg->desc("action avec step, avec code de retour");
 | |
|       $msg->action("action avec step, avec code de retour true", function (IMessenger $msg) {
 | |
|         $msg->step("step");
 | |
|         return true;
 | |
|       });
 | |
| 
 | |
|       $msg->action("action avec step, avec code de retour false", function (IMessenger $msg) {
 | |
|         $msg->step("step");
 | |
|         return false;
 | |
|       });
 | |
| 
 | |
|       $msg->action("action avec step, avec code de retour autre", function (IMessenger $msg) {
 | |
|         $msg->step("step");
 | |
|         return "autre";
 | |
|       });
 | |
| 
 | |
|       $msg->action("action avec step, avec code de retour null", function (IMessenger $msg) {
 | |
|         $msg->step("step");
 | |
|       });
 | |
| 
 | |
|       $msg->desc("action sans step, avec code de retour");
 | |
|       $msg->action("action sans step, avec code de retour true", function (IMessenger $msg) {
 | |
|         return true;
 | |
|       });
 | |
| 
 | |
|       $msg->action("action sans step, avec code de retour false", function (IMessenger $msg) {
 | |
|         return false;
 | |
|       });
 | |
| 
 | |
|       $msg->action("action sans step, avec code de retour autre", function (IMessenger $msg) {
 | |
|         return "autre";
 | |
|       });
 | |
| 
 | |
|       # ici, il n'y aura pas de message du tout
 | |
|       $msg->action("action sans step, avec code de retour null", function (IMessenger $msg) {
 | |
|       });
 | |
| 
 | |
|       $msg->info("info");
 | |
|       $msg->note("note");
 | |
|       $msg->warning("warning");
 | |
|       $msg->error("error");
 | |
|     });
 | |
|   });
 | |
| }
 | |
| 
 | |
| if ($multilines) {
 | |
|   $msg->section("multi-line\nsection", function (IMessenger $msg) {
 | |
|     $msg->title("multi-line\ntitle");
 | |
|     $msg->title("another\ntitle");
 | |
| 
 | |
|     $msg->print("multi-line\nprint");
 | |
|     $msg->info("multi-line\ninfo");
 | |
|     $msg->action("multi-line\naction");
 | |
|     $msg->asuccess();
 | |
|     $msg->action("multi-line\naction");
 | |
|     $msg->step("multi-line\nstep");
 | |
|     $msg->afailure();
 | |
|     $msg->action("multi-line\naction");
 | |
|     $msg->step("multi-line\nstep");
 | |
|     $msg->asuccess("multi-line\nsuccess");
 | |
|     $msg->action("multi-line\naction");
 | |
|     $msg->step("multi-line\nstep");
 | |
|     $msg->adone("multi-line\ndone");
 | |
| 
 | |
|     $msg->end();
 | |
|     $msg->end();
 | |
|   });
 | |
| }
 | |
| 
 | |
| if ($exceptions) {
 | |
|   $msg->section("Exceptions", function (IMessenger $msg) {
 | |
|     $e = new Exception("message");
 | |
|     $u1 = new UserException("userMessage");
 | |
|     $u2 = (new UserException("userMessage"))->setTechMessage("techMessage");
 | |
|     $msg->title("avec message", function (IMessenger $msg) use ($e, $u1, $u2) {
 | |
|       $msg->info(["exception", $e]);
 | |
|       $msg->info(["userException1", $u1]);
 | |
|       $msg->info(["userException2", $u2]);
 | |
|     });
 | |
|     $msg->title("sans message", function (IMessenger $msg) use ($e, $u1, $u2) {
 | |
|       $msg->info($e);
 | |
|       $msg->info($u1);
 | |
|       $msg->info($u2);
 | |
|     });
 | |
|   });
 | |
| }
 |