diff --git a/archive/NerdTools-2024.02.05-x86_64-1.txz b/archive/NerdTools-2024.02.05-x86_64-1.txz new file mode 100644 index 0000000..dbc487a Binary files /dev/null and b/archive/NerdTools-2024.02.05-x86_64-1.txz differ diff --git a/plugin/NerdTools.plg b/plugin/NerdTools.plg index 81c9825..b8df41d 100644 --- a/plugin/NerdTools.plg +++ b/plugin/NerdTools.plg @@ -3,8 +3,8 @@ - - + + @@ -17,6 +17,8 @@ ##&name; +###2024.02.05 +- Fixed: Improved handling of package names and versions ###2024.02.04 - Fixed: package nvme-cli added original version, the rename not work - Fixed: rollback python-pip-21.3.1-2 (added stable version) diff --git a/source/NerdTools/usr/local/emhttp/plugins/NerdTools/include/PackageQuery.php b/source/NerdTools/usr/local/emhttp/plugins/NerdTools/include/PackageQuery.php index 1d3f14f..f11260b 100644 --- a/source/NerdTools/usr/local/emhttp/plugins/NerdTools/include/PackageQuery.php +++ b/source/NerdTools/usr/local/emhttp/plugins/NerdTools/include/PackageQuery.php @@ -18,23 +18,23 @@ $pkg_nameArray = []; foreach ($pkgs_github_array as $pkg_github) { $pkg_nameArray = explode('-', $pkg_github['name']); // split package name into array + $pattern = '/^([a-zA-Z0-9-]+)-([\d.]+)-?.*\.txz$/'; + $pkg_name = ""; + $pkg_version = ""; + $pkg_nver = ""; + if (preg_match($pattern, $pkg_github['name'], $matches)) { + // $matches[1] contiene el nombre del paquete + // $matches[2] contiene la versiĆ³n del paquete + $pkg_name = $matches[1]; + $pkg_version = $matches[2]; + $pkg_nver = $matches[2]; + } // strip md5 files if(!strpos(end($pkg_nameArray),'.md5')) { - - $pkg_name = $pkg_nameArray[0]; - - if (sizeof($pkg_nameArray) > 4) { //if package name has a subset get it - for ($ii = 1; $ii < sizeof($pkg_nameArray)-3; $ii++) { - $pkg_name .= '-'.$pkg_nameArray[$ii]; - } - } - - $pkg_version = $pkg_nameArray[sizeof($pkg_nameArray) - 3]; // get package version - + $pkg_nver = $pkg_name.'-'.str_replace('.', '__', $pkg_version); // add underscored version to package name - $pkg_pattern = '/^'.$pkg_name.'-[0-9].*/'; // search pattern for packages // check all plugins for package dependency