Browse Source

feat: Indiquer la version en entête du Stub

master
Matthieu Marcillaud 3 weeks ago
parent
commit
bb61a7cf6d
  1. 1
      compiler/Build.php
  2. 4
      compiler/Git.php
  3. 8
      compiler/PharArchive.php
  4. 1
      loader/phar/stub.php

1
compiler/Build.php

@ -44,6 +44,7 @@ class Build {
);
$n = $phar->build(
$git->getVersion(),
$git->getFullVersion(),
$git->getVersionDate()
);
$this->stats['Nb files'] = $n;

4
compiler/Git.php

@ -22,6 +22,10 @@ class Git {
return $this->run('describe --tags --abbrev=0');
}
public function getFullVersion(): string {
return $this->run('describe --tags --abbrev=1');
}
public function getVersionDate(): DateTimeImmutable {
$date = $this->run('log -n1 --pretty=%ci HEAD');
$date = new DateTimeImmutable($date ?: null);

8
compiler/PharArchive.php

@ -51,15 +51,17 @@ class PharArchive {
/** @return int Nombre de fichiers insérés dans l’archive */
public function build(
string $version,
string $public_version,
string $private_version,
\DateTimeInterface $versionDate,
): int {
$destFile = $this->buildDirectory . '/' . $this->filename;
$phar = new \Phar($destFile, 0, $this->filename);
$phar->setSignatureAlgorithm(\Phar::SHA512);
$phar->startBuffering();
$phar->setStub(file_get_contents($this->sourceDirectory . '/phar/stub.php'));
$phar['/version.php'] = "<?php return '$version';";
$stub = file_get_contents($this->sourceDirectory . '/phar/stub.php');
$phar->setStub(str_replace('@@@LoaderVersion@@@', $private_version, $stub));
$phar['/version.php'] = "<?php return '$public_version';";
$phar['/index.php'] = "<?php require __DIR__ . '/public/index.php';";
foreach ($this->getPhpFiles() as $file) {

1
loader/phar/stub.php

@ -1,4 +1,5 @@
<?php
// Version: @@@LoaderVersion@@@
if (!http_response_code()) {
require_once 'phar://' . __FILE__ . '/bin/console.php';

Loading…
Cancel
Save