I've finished my first Capt'n Plugin, and I've solved all my goals.
BTW, to be able to run it, we need a CaptainHook patched version, because I've added some new capabilities.
Third One -- this report
Caution
It's mandatory to run my plugin, but it's NOT a reading confort !
On same way to define a custom config my-custom-index: my-custom-value
https://php.captainhook.info/configure.html#settings
And {$CONFIG|value-of:custom>>my-custom-index} placeholder
I would like to be able to retrieve any Plugin Option if defined with such syntax
{$CONFIG|value-of:plugin>>PluginClassFQN.my-plugin-option-key}
For example:
{$CONFIG|value-of:plugin>>\\Bartlett\\CaptainHookBinPlugin\\BinPlugin.auto-colors-flag}
With
{
"config" : {
"verbosity" : " normal" ,
"allow-failure" : false ,
"ansi-colors" : true ,
"git-directory" : " .git" ,
"fail-on-first-error" : false ,
"bootstrap" : " examples/vendor-bin-autoloader.php" ,
"plugins" : [
{
"plugin" : " \\ Bartlett\\ CaptainHookBinPlugin\\ BinPlugin" ,
"options" : {
"config-directory" : " {$ENV|value-of:XDG_CONFIG_HOME|default:~/.config}" ,
"binary-directory" : " {$ENV|value-of:VENDOR_BIN_DIR|default:vendor/bin}" ,
"ansi-colors-flag" : " --ansi" ,
"auto-colors-flag" : " --colors=auto" ,
"always-colors-flag" : " --colors=always" ,
"never-colors-flag" : " --colors=never"
}
}
],
"includes" : [
" examples/pre-push.mago.json"
]
}
}
My Patch suggestion
diff --git a/src/Runner/Action/Cli/Command/Placeholder/Config.php b/src/Runner/Action/Cli/Command/Placeholder/Config.php
index acb5f44..dce152b 100644
--- a/src/Runner/Action/Cli/Command/Placeholder/Config.php
+++ b/src/Runner/Action/Cli/Command/Placeholder/Config.php
@@ -58,6 +58,15 @@ class Config extends Foundation
$custom = $this->config->getCustomSettings();
return $custom[$key] ?? '';
}
+ if (str_starts_with($value, 'plugin>>')) {
+ list ($pluginClass, $key) = explode('.', substr($value, 8));
+ foreach ($this->config->getPlugins() as $plugin) {
+ if ($plugin->getPlugin() === $pluginClass) {
+ return $plugin->getOptions()->get($key);
+ }
+ };
+ return '';
+ }
if (!isset($this->valueToMethod[$value])) {
return '';
}
I've finished my first Capt'n Plugin, and I've solved all my goals.
BTW, to be able to run it, we need a CaptainHook patched version, because I've added some new capabilities.
Third One -- this report
Caution
It's mandatory to run my plugin, but it's NOT a reading confort !
On same way to define a custom config
my-custom-index: my-custom-valuehttps://php.captainhook.info/configure.html#settings
And
{$CONFIG|value-of:custom>>my-custom-index}placeholderI would like to be able to retrieve any Plugin Option if defined with such syntax
{$CONFIG|value-of:plugin>>PluginClassFQN.my-plugin-option-key}For example:
{$CONFIG|value-of:plugin>>\\Bartlett\\CaptainHookBinPlugin\\BinPlugin.auto-colors-flag}With
{ "config": { "verbosity": "normal", "allow-failure": false, "ansi-colors": true, "git-directory": ".git", "fail-on-first-error": false, "bootstrap": "examples/vendor-bin-autoloader.php", "plugins": [ { "plugin": "\\Bartlett\\CaptainHookBinPlugin\\BinPlugin", "options": { "config-directory": "{$ENV|value-of:XDG_CONFIG_HOME|default:~/.config}", "binary-directory": "{$ENV|value-of:VENDOR_BIN_DIR|default:vendor/bin}", "ansi-colors-flag": "--ansi", "auto-colors-flag": "--colors=auto", "always-colors-flag": "--colors=always", "never-colors-flag": "--colors=never" } } ], "includes": [ "examples/pre-push.mago.json" ] } }My Patch suggestion