emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/repology 2f8f866cfd: repology: Add `repology-collect-pr


From: Nicolas Goaziou
Subject: [elpa] externals/repology 2f8f866cfd: repology: Add `repology-collect-projects'
Date: Fri, 11 Feb 2022 03:57:58 -0500 (EST)

branch: externals/repology
commit 2f8f866cfd21e2a9b0d3c4da84adb3c8e705f9ea
Author: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Commit: Nicolas Goaziou <mail@nicolasgoaziou.fr>

    repology: Add `repology-collect-projects'
    
    * repology.el (repology-collect-projects): New function.
---
 repology.el | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/repology.el b/repology.el
index 3cc224f973..2267a9b1ed 100644
--- a/repology.el
+++ b/repology.el
@@ -515,6 +515,35 @@ according to the value of `repology-free-projects-only'."
                       (lambda (p) (eq t (repology-check-freedom p))))
                     result)))))
 
+;;;###autoload
+(defun repology-collect-projects (names)
+  "Collect a list of Repology projects by their name.
+
+NAMES is a list of project names, as strings.
+
+Project names can also be a list of strings. In that case, the
+project is named after the first element of the list and packages
+associated to subsequent names are merged into it, as if all were
+a single project.  This is useful when Repology has multiple names
+from the same project, or when you want the project to be
+displayed under a different name than Repology's.
+
+Return a list of Repology projects, in the order specified in
+NAMES."
+  (mapcar (lambda (name)
+            (let* ((project
+                    (pcase name
+                      (`(,project . ,_) project)
+                      (_ name)))
+                   (packages
+                    (cond
+                     ((listp name)
+                      (seq-mapcat #'repology-lookup-project name))
+                     (t
+                      (repology-lookup-project name)))))
+              (repology-project-create project packages)))
+          names))
+
 ;;;###autoload
 (defun repology-report-problems (repository)
   "List problems related to REPOSITORY.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]