Add --thanks option plugin

This commit is contained in:
Owen Voke
2020-07-01 10:22:30 +01:00
parent 234b6847ad
commit 64a8ed04ff
2 changed files with 47 additions and 0 deletions

View File

@ -85,6 +85,7 @@
},
"pest": {
"plugins": [
"Pest\\Plugins\\Thanks",
"Pest\\Plugins\\Version"
]
},

46
src/Plugins/Thanks.php Normal file
View File

@ -0,0 +1,46 @@
<?php
declare(strict_types=1);
namespace Pest\Plugins;
use Pest\Contracts\Plugins\HandlesArguments;
use Symfony\Component\Console\Output\OutputInterface;
/**
* @internal
*/
final class Thanks implements HandlesArguments
{
private const THANKS_OPTION = '--thanks';
/** @var array<int, string> */
private const FUNDING_MESSAGES = [
"\n Want to support Pest? Here are some ways you can help:",
"\n - Star or contribute to Pest on GitHub:\n <options=bold>https://github.com/pestphp/pest</>",
"\n - Tweet about Pest on Twitter:\n <options=bold>https://twitter.com/pestphp</>",
"\n - Sponsor Nuno Maduro on GitHub:\n <options=bold>https://github.com/sponsors/nunomaduro</>",
"\n - Sponsor Nuno Maduro on Patreon:\n <options=bold>https://patreon.com/nunomaduro</>",
];
/** @var OutputInterface */
private $output;
public function __construct(OutputInterface $output)
{
$this->output = $output;
}
public function handleArguments(array $arguments): array
{
if (!in_array(self::THANKS_OPTION, $arguments, true)) {
return $arguments;
}
foreach (self::FUNDING_MESSAGES as $message) {
$this->output->writeln($message);
}
exit(0);
}
}