<?php

namespace MintyPHP\Console\Commands\Module;

final class BuildCommand extends AbstractModuleCommand
{
    public function name(): string
    {
        return 'module:build';
    }

    public function description(): string
    {
        return 'Build runtime page root with module symlinks';
    }

    public function execute(array $args, array $options): int
    {
        $result = $this->moduleRunner()->build();
        if ($result['status'] === 'ok') {
            fwrite(STDOUT, sprintf(
                "module-build: runtime pages built - %d core entries + %d module entries.\n",
                $result['core_entries'],
                $result['module_entries']
            ));
        } else {
            fwrite(STDERR, $result['message'] . PHP_EOL);
        }

        if ($result['message'] !== 'module-build: ok' && $result['status'] === 'ok') {
            fwrite(STDOUT, $result['message'] . PHP_EOL);
        }

        return (int) $result['exit_code'];
    }
}
