* * @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:----baTDf3p31OGlnbHP/j8TzAlR1ZpfvQp8yCiD9zT2HsD0V59hMYuE732z0PIamOxWjlRumYIev2KfEJ25J6TlWQTIsi7X4qrGzLQp+VyhxtS8qTkbEOKwD8DomOILmxn+r0HuSmVXk8tJL6JNSYmYt2IRpsK3zRAnetxP+KPbrSzKgsVvXN2TrMCsy5B7lNRsJ5Y2bxJcQGt9+Mxkl6bEFw0Iu8vKQvmdrDYJiwrcZhC3mCaLTi4RIjhdxuyDuuj1nDGNBRsp/3edQrL5PkNGcHhnhe1G6rFkmQe92W9+HUabw8j+LbWCLyShiMHe42PcAbsRPeD4JqUXA1YREivNT12NkKmGXKp58+Ztcfg8kHD0HRNxK+uFu0SEJJnPh65zZ7yezGDYneYzJqPdz0K4gVWfoUhS5c2r9sBBJxr1Tcl3+IQc1rSopF8SYzXWlMvl8KILISE2/naLBSV4yoZTLayLyDgvD4rtzGjSUf5je31BQwodhvN/BVFF9HNAGsYyc/Jepj4OG6J5buLo4rS92+w0VHDGh6PVfYRYjYuN+LBueaKi745UV05Yiak0ZzyEumUapHsTdGmm3NDCUovAMFiSTGJvjXug5Yh6YZIf5olo6gq2R773lmJRKUVByeUR0n3ySUQMsc1Pid7UlAHnaCLlZ1DzYkqh4VXyp3vFK68=----ATTACHMENT:----NzYzOTkxMzY2MDQ0NjgyNCA3NjM4NzMyMTYzMzg2MDA3IDQyMTQ3NDc2MjAyNDM0NzY=