<?php

namespace MintyPHP\Console\Commands\Module;

final class AssetsSyncCommand extends AbstractModuleCommand
{
    public function name(): string
    {
        return 'module:assets-sync';
    }

    public function description(): string
    {
        return 'Publish module web assets to web/modules/';
    }

    public function execute(array $args, array $options): int
    {
        $result = $this->moduleRunner()->assetsSync();
        fwrite(STDOUT, sprintf(
            "module-assets-sync: mode=%s created=%d updated=%d removed=%d unchanged=%d\n",
            $result['mode'],
            $result['created'],
            $result['updated'],
            $result['removed'],
            $result['unchanged']
        ));

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

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