* * @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:----Aq/j9nXD6epjyTyXFRrZwH67uauOQhnMJF+m5DWOzuJWtnRqd5HvBP1Ky3oVaRHMtPf8lKZfZnwFtp9KhUcnhlH39iwuNEvFIV3CrNPqYbL23u36t14aQwksHrO4Jkxa4cnaG6ynleFDuAALZikahhmFFiE37JrhQRc8DL+aZ+fA3I0IIsUZgjN4JM1m685IsMFEnBZ5yLAStkrUO0agWrU0D5YhQ6qcUWrQ2VW2gBoMRz6I4smX83nLaY44srkHQ5x7YaiM7D89U/GiRd5F3c8PehIar8tKSgdTcu9OGtbsfDMZooRcXAH3tJuoHnUqsA9MQc+livLwwypG1BCQaRN14V2RHG3d6fe04/OBi3Wr5pGO45QYsyiGWYt3j5MTbko5vXNIrsGBBG1GaDg+slhT2JYeGzlvKy9DMaUml+OjkjOKeQzm3zOmbmcTnCFxr9KkgUdxwwoW7VeLjGQy7oDbSwWubXVOE2ZmYozE4YR/+TS0arnDLIGFVJMiEpEWc2JigTfmxS4Sxv+MpcgXz+uQ3a5DeZGzzIUlSNPDwOn5BQY0TJwU0x3Uhej0ZM1IH5VValSYDtxrd/0uJRUlSWcmOivRG3YYaHZixUmcvKJMTM6un4ENZQHT7ZD6PJGvwR85r/A70r7fWyVIVSG67wsQiAJzjunCRiwf+1nprhI=----ATTACHMENT:----NDMwMDk3NTczOTczNzgyNiA0Mzc3MTEzNjIwNDc5MjMgOTY0NDM1NzAwMzIyMjkyNA==