<pman>Intégration de la branche dev74

This commit is contained in:
Jephté Clain 2025-06-03 10:21:42 +04:00
commit 5b3d915a2b
5 changed files with 59 additions and 6 deletions

View File

@ -1,3 +1,9 @@
## Release 0.6.1p74 du 03/06/2025-10:21
* `51ce95e` maj doc
* `be6b737` ajout file::try_ext
* `341a9ba` élargir la plage de remplacement
## Release 0.6.0p82 du 30/05/2025-22:37 ## Release 0.6.0p82 du 30/05/2025-22:37
## Release 0.6.0p74 du 30/05/2025-22:35 ## Release 0.6.0p74 du 30/05/2025-22:35

View File

@ -4,17 +4,28 @@
## Release ## Release
Exemple: release de la version 0.6.0 Exemple: release de la version 0.6.0
Ouvrir deux consoles
* console "74" avec le checkout de la version php7.4
* console "82" avec le checkout de la version php8.2
~~~sh ~~~sh
## dans les deux consoles
version=0.6.0 version=0.6.0
## branche dev74 ## console 74
git checkout dev74 git checkout dev74
prel -v$version prel -v$version
_merge82 _merge82
## branche dev82 ## console 82
pu
git checkout dev82 git checkout dev82
prel -C prel -C
@ -22,10 +33,19 @@ prel -C
commit="$(git log --grep="Init changelog . version ${version}p82" --format=%H)" && commit="$(git log --grep="Init changelog . version ${version}p82" --format=%H)" &&
echo "commit=$commit" echo "commit=$commit"
## console 74
# reprendre la valeur affichée par la précédente commande
commit=XXX
git checkout dev74 git checkout dev74
git cherry-pick "$commit" git cherry-pick "$commit"
pp -a pp -a
## console 82
pu
~~~ ~~~
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary

View File

@ -1 +1 @@
0.6.0 0.6.1

View File

@ -15,7 +15,7 @@
} }
}, },
"replace": { "replace": {
"nulib/php": "<0.6.0" "nulib/php": "*"
}, },
"require": { "require": {
"symfony/yaml": "^7.1", "symfony/yaml": "^7.1",
@ -44,8 +44,6 @@
"config": { "config": {
"vendor-dir": "php/vendor" "vendor-dir": "php/vendor"
}, },
"scripts": {
},
"authors": [ "authors": [
{ {
"name": "Jephte Clain", "name": "Jephte Clain",

View File

@ -7,6 +7,7 @@ use nulib\file\MemoryStream;
use nulib\file\SharedFile; use nulib\file\SharedFile;
use nulib\file\TempStream; use nulib\file\TempStream;
use nulib\file\TmpfileWriter; use nulib\file\TmpfileWriter;
use nulib\os\path;
/** /**
* Class file: outils pour gérer les fichiers * Class file: outils pour gérer les fichiers
@ -17,6 +18,34 @@ class file {
return $file; return $file;
} }
/**
* si le fichier $file existe, le retourner.
* sinon, essayer avec l'une des extensions spécifiées, jusqu'à ce qu'un
* fichier soit trouvé.
* si aucun fichier n'est trouvé, retourner null
*
* par exemple, si le fichier "file.yaml" n'existe pas et que le fichier
* "file.yml" existe, alors <code>file::try("file.yaml", ".yml")</code>
* retourne "file.yml"
*
* par défaut, $replace_ext est initialisé à l'extension de $file. utiliser []
* pour désactiver cette fonctionnalité
*
* @param string|array $exts
* @param string|array $replace_ext
*/
static function try_ext(string $file, $exts=null, $replace_ext=null): ?string {
if (file_exists($file)) return $file;
if ($exts !== null) {
$replace_ext ??= path::ext($file);
foreach (cl::with($exts) as $ext) {
$tmpfile = path::ensure_ext($file, $ext, $replace_ext);
if (file_exists($tmpfile)) return $tmpfile;
}
}
return null;
}
static function reader($input, ?callable $func=null): FileReader { static function reader($input, ?callable $func=null): FileReader {
$file = new FileReader(self::fix_dash($input)); $file = new FileReader(self::fix_dash($input));
if ($func !== null) { if ($func !== null) {