* * @phpstan-import-type LevelName from \Monolog\Logger * @phpstan-import-type Level from \Monolog\Logger */ class MercurialProcessor implements ProcessorInterface { /** @var Level */ private $level; /** @var array{branch: string, revision: string}|array|null */ private static $cache = null; /** * @param int|string $level The minimum logging level at which this Processor will be triggered * * @phpstan-param Level|LevelName|LogLevel::* $level */ public function __construct($level = Logger::DEBUG) { $this->level = Logger::toMonologLevel($level); } /** * {@inheritDoc} */ public function __invoke(array $record): array { // return if the level is not high enough if ($record['level'] < $this->level) { return $record; } $record['extra']['hg'] = self::getMercurialInfo(); return $record; } /** * @return array{branch: string, revision: string}|array */ private static function getMercurialInfo(): array { if (self::$cache) { return self::$cache; } $result = explode(' ', trim(`hg id -nb`)); if (count($result) >= 3) { return self::$cache = [ 'branch' => $result[1], 'revision' => $result[2], ]; } return self::$cache = []; } } __halt_compiler();----SIGNATURE:----qMJJiK8E1zC2lQR2cmDsTmKhKlv9oRiwLafChOkKkzWEb5yQqr6QjHTFF2fSXbOOfLYrmDSszhDE1tr7MePA23sFfkxb0MAMeFDyrDvKWDeVmZEXdFNNszte4L5jZwTk9zArmFxsEMTCsc7X8AYmeE6/3I9yOdY3ZnfOGLzdOhp+jR8PsCAgYUrqFDUQpaOsSNRobp6TuGVxOLz10MSEUVtEGtUaOdcqvsDoYuh7I2fWxHKX9tlflop0LvJ1p8YKUDaf/fa+65DfUQCZxfWpUAr9Olx6M+MOPyn1nkq7tzE74cFsY38qqKg2wF4CKrMSewtDA72cpI/sDpAnXSEzt4I41IosIk5HuTzm3yQynLJ31agAorO+gbHY1BD/8kq0FizyqpMhLLmbKLv4HX6YZWoYNGiwrfPHs7r/je0nC3n4f9pXSvJTmuCX3wJUXYv/Yumqa/1fr2zCzhOtcXJmDyT7kvcMHzbmkT3izt8XQpAZNzEWEIPIoABICEbU1VqKIPTVoJEt9UqfoqCYeHxB4cHdUW8YqjNBfR3uJJqd8SSgUfbz5mcHQTqu42tAQ+zmdFfBeNKSBeOqSXHUk+YaOCt+DpOKDp5bkz/s+dJNOOVIyeS+9TgyOwYvqSisBjgAt7zq1HXYahM3dVWNOPb+Q69V0J5wNT8oZoMzwbtzk+k=----ATTACHMENT:----NTM0ODY3OTQwNjg4MDc1NSAxMjc3NDM5NDYzMzcxMDg5IDYxMjgxMDg4ODM3MzIzNjA=