namespace app;
-use merry\Config;
use pharext\Cli\Args;
class Cli
{
/**
- * @var \merry\Config
+ * @var \app\Config
*/
private $config;
+ /**
+ * @var \pharext\Cli\Args
+ */
+ private $args;
+
function __construct(Config $config, Args $args) {
$this->config = $config;
$this->args = $args;
}
- function __invoke($argc, array $argv) {
+ function __invoke($argc, array $argv, callable $exec) {
$prog = array_shift($argv);
foreach ($this->args->parse(--$argc, $argv) as $error) {
$errs[] = $error;
}
if ($this->args["help"] || !array_filter($this->args->toArray())) {
+ //var_dump($this->args->toArray(), $this->args[0]);
$this->help($prog);
exit;
}
exit(-1);
}
}
-
- if ($this->args["ngrok"]) {
- system($this->config->ngrok->command . " ". implode(" ", array_map("escapeshellarg", [
- "http",
- "--subdomain=pharext",
- "--authtoken",
- $this->config->ngrok->auth->token,
- "--auth",
- $this->config->ngrok->auth->user .":". $this->config->ngrok->auth->pass,
- "80"
- ])));
+
+ switch($this->args[0]) {
+ case "ngrok":
+ $exec(Cli\Ngrok::class);
+ break;
+ case "initdb":
+ $exec(Cli\Initdb::class);
+ break;
+ case "gen-models":
+ $exec(Cli\GenModels::class);
+ break;
}
}
* @param string $prog
*/
public function help($prog) {
+ return print new Args\Help($prog, $this->args);
printf("Usage:\n\n \$ %s", $prog);
$flags = [];