Search by

mwx / tools

metaworx

CLI application plumbing, configuration, process orchestration and external-tool wrappers, the PHPUnit wrapper among them

0.4.0 2026-09-25 11:06 UTC

This package is auto-updated.

Last update: 2026-09-25 09:27:39 UTC


README

External-tool orchestration on top of mwx/lib. Owns the mwx\Tools\ namespace prefix, except Tools\Db\ / Tools\Mysql\ (→ mwx/tools-mysql) and Tools\Wp\ (→ mwx/tools-wp).

Contents

NamespaceWhat it holds
mwx\Tools\Process machinery (ProcessPipeline, sequences, descriptors, UnixPipes), tool wrappers (Executable, Script, ExternalTool, Git, Rsync, Php, Composer), binary interfaces/traits, application-coupled options (OptionsWithApplication, OptionsWithParent), LocalizedHash
mwx\Tools\CLI\Application (symfony console extension), Command, Shell, IO and application-consumer contracts
mwx\Tools\Config\Config family: file/localized/pathable configs, AppConfig
mwx\Tools\Exceptions\ProcessFailedException (symfony-process-coupled)
mwx\Tools\PhpUnit\The PHPUnit wrapper: EntryPoint and the phpunit script generated from it, Runner, and the output filter chain — see src/PhpUnit/README.md

Tools define their own command-line option constants (e.g. Composer::OPTION_COMPOSER, Rsync::OPTION_RSYNC_EXCLUDE, Mysql::OPTION_MYSQL in the mysql package); applications register them.

The src/PhpUnit/ directory holds the PHPUnit wrapper, imported from the shared guidelines and since refactored into this namespace. git log -- packages/tools/src/PhpUnit reads back to 2026-04-23 and shows the PHP line only: the bash implementation that sibling projects wrote, and that this lineage never adopted, hangs off the [TASK] Record the bash wrapper lineage without adopting it merge as its second parent. Add --all or ask that merge for its parents to see it. EntryPoint.php carries the entry script's history across its rename; use git log --follow.

The runnable phpunit beside it is generated from EntryPoint.php and is not committed — see .gitignore here, and src/PhpUnit/README.md section 6 for the command. Generating it also deploys phpunit.bat and phpunit.md. There is nothing to edit in it: it is a build product.

Dependencies

mwx/lib, symfony console/process/stopwatch/yaml, clue/arguments (command-line splitting in Script), czproject/git-php (Git, LocalizedHash defaults), and composer-runtime-api (Application::getComposerRootPath()).

Install

composer require mwx/tools

MIT license.