#!/usr/bin/env php
<?php
namespace Harp;

use Harp\playh\Show;

require_once(__DIR__.'/vendor/autoload.php');

class HarpPlay
{
    private $argv;
    private $commands = 
    [
        "show::helper" => true,
        "build::controller" => true,
        "build::model" => true,
        "build::view" => true,
        "build::layout" => true,
        "build::template" => true,
        "build::layout_file" => true,
        "build::app" => true,
        "build::api" => true,
        "build::key" => true,
        "build::cert" => true,
        "build::storage" => true,
        "build::route" => true,
        "build::group"  => true,
        "build::server" => true,
        "build::entity" => true,
        "build::repository" => true,
        "db::create_migration" => true,
        "db::migrate" => true,
        "db::entity" => true,
        "del::app" => true,
        "del::api" => true,
        "del::layout" => true,
        "del::controller" => true,
        "del::model" => true,
        "del::view" => true
    ];

    public function __construct()
    {
        $this->argv = $_SERVER['argv'];

        $this->parseArgs();
    }

    private function parseArgs()
    {
        if(!isset($this->argv[1]))
        {
            Show::helper();
        }

        $cmd = mb_strtolower(trim($this->argv[1]));
   
        if(!isset($this->commands[$cmd]))
        {
            Show::showMessage(sprintf(Show::getMessage(0),$cmd));
        }
     
        $cmd = '\\Harp\\playh\\'.ucfirst($cmd);
 
        $cmd($this->argv);
    }

}(new HarpPlay());