about summary refs log tree commit diff
path: root/pkgs/common-updater
diff options
context:
space:
mode:
authorFrancesco Gazzetta <fgaz@fgaz.me>2022-12-10 15:19:50 +0100
committerFrancesco Gazzetta <fgaz@fgaz.me>2022-12-10 17:02:13 +0100
commit19e4b53b090c7aa150af40232b2c75c80d53a017 (patch)
tree02b001b57529a154785499463c0ca1a6df0d815f /pkgs/common-updater
parentc1188a559b143950fd1dc55b22820fffc3013b1d (diff)
common-updater-scripts,directoryListingUpdater: add extraRegex parameter
Diffstat (limited to 'pkgs/common-updater')
-rw-r--r--pkgs/common-updater/directory-listing-updater.nix3
-rwxr-xr-xpkgs/common-updater/scripts/list-directory-versions6
2 files changed, 7 insertions, 2 deletions
diff --git a/pkgs/common-updater/directory-listing-updater.nix b/pkgs/common-updater/directory-listing-updater.nix
index fb7491ab879ac..bd0b5b1df30d6 100644
--- a/pkgs/common-updater/directory-listing-updater.nix
+++ b/pkgs/common-updater/directory-listing-updater.nix
@@ -11,9 +11,10 @@
 , odd-unstable ? false
 , patchlevel-unstable ? false
 , url ? null
+, extraRegex ? null
 }:
 
 genericUpdater {
   inherit pname version attrPath ignoredVersions rev-prefix odd-unstable patchlevel-unstable;
-  versionLister = "${common-updater-scripts}/bin/list-directory-versions ${lib.optionalString (url != null) "--url=${lib.escapeShellArg url}"}";
+  versionLister = "${common-updater-scripts}/bin/list-directory-versions ${lib.optionalString (url != null) "--url=${lib.escapeShellArg url}"} ${lib.optionalString (extraRegex != null) "--extra-regex=${lib.escapeShellArg extraRegex}"}";
 }
diff --git a/pkgs/common-updater/scripts/list-directory-versions b/pkgs/common-updater/scripts/list-directory-versions
index cf2f0adbd43e9..c713578beefbe 100755
--- a/pkgs/common-updater/scripts/list-directory-versions
+++ b/pkgs/common-updater/scripts/list-directory-versions
@@ -26,6 +26,8 @@ parser.add_argument(
 parser.add_argument("--url", help="url of the page that lists the package versions")
 parser.add_argument("--file", help="file name for writing debugging information")
 
+parser.add_argument("--extra-regex", help="additional regex to filter versions with")
+
 
 if __name__ == "__main__":
     args = parser.parse_args()
@@ -62,4 +64,6 @@ if __name__ == "__main__":
                 rf"(.*/)?{args.pname}-([\d.]+?(-[\d\w.-]+?)?)(\.tar)?(\.[^.]*)", link_url
             )
             if match:
-                print(match.group(2))
+                version = match.group(2)
+                if (not args.extra_regex) or re.fullmatch(args.extra_regex, version):
+                    print(version)