'ptxdist-repology' must depend on 'host-system-python3' for 'python3'!

Signed-off-by: Bruno Thomsen <[email protected]>
---
I'm stuck in converting repology command from Bash/Makefile to Bash/Python as
it needs to depend on host-system-python3 but I simply do not know how
to do that. So any pointers would be helpful.

 bin/ptxdist                        |  6 ++++++
 rules/post/ptxd_make_repology.make | 21 +++++++++++++++++++++
 scripts/bash_completion            |  2 +-
 scripts/report/repology.py         | 25 +++++++++++++++++++++++++
 4 files changed, 53 insertions(+), 1 deletion(-)
 create mode 100644 rules/post/ptxd_make_repology.make
 create mode 100755 scripts/report/repology.py

diff --git a/bin/ptxdist b/bin/ptxdist
index 66b46c6da..64a1cb9f7 100755
--- a/bin/ptxdist
+++ b/bin/ptxdist
@@ -799,6 +799,7 @@ Misc:
                                variable and print the contents of this variable
   licensecheck                 check md5sums of license files for all packages
   lint                         run some basic checks for the bsp and PTXdist
+  repology                     generate repology JSON for PTXdist
   list-packages                        print a list of all selected packages
   local-src <pkg> [<directory>]        overwrite a package source with a 
locally provided
                                directory containing the sourcecode.
@@ -1916,6 +1917,11 @@ EOF
                                ptxd_bailout "lint checks failed"
                        fi
                        ;;
+               repology)
+                       check_premake_compiler &&
+                       ptxd_make_log ptxdist-repology
+                       exit
+                       ;;
                list-packages)
                        check_config &&
                        check_deps &&
diff --git a/rules/post/ptxd_make_repology.make 
b/rules/post/ptxd_make_repology.make
new file mode 100644
index 000000000..3fad8e248
--- /dev/null
+++ b/rules/post/ptxd_make_repology.make
@@ -0,0 +1,21 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2025 by Bruno Thomsen <[email protected]>
+#               2025 by Ladislav Michl <[email protected]>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+PHONY += ptxdist-repology
+
+# Use '=' to delay $(shell ...) calls until this is needed
+PTX_REPOLOGY_PY         = $(call ptx/in-path, PTXDIST_PATH_SCRIPTS, 
report/repology.py)
+
+ptx/repology = \
+       @$(call world/execute, PTX_REPOLOGY, $(PTX_REPOLOGY_PY))
+
+ptxdist-repology:
+       @$(call ptx/repology)
+
+# vim: syntax=make
diff --git a/scripts/bash_completion b/scripts/bash_completion
index 4bff2d4b6..2bb21a848 100644
--- a/scripts/bash_completion
+++ b/scripts/bash_completion
@@ -123,7 +123,7 @@ _ptxdist_completion()
        clean)
                COMPREPLY=( $( compgen -W root -- $cur ) )
                ;&
-       
get|extract|prepare|compile|install|targetinstall|tags|urlcheck|licensecheck|package-info|cargosync)
+       
get|extract|prepare|compile|install|targetinstall|tags|urlcheck|licensecheck|repology|package-info|cargosync)
                COMPREPLY+=( $( compgen -W "$(__ptxdist_completion_packages)" 
-- $cur ) )
                ;;
        drop)
diff --git a/scripts/report/repology.py b/scripts/report/repology.py
new file mode 100755
index 000000000..5e9d562cd
--- /dev/null
+++ b/scripts/report/repology.py
@@ -0,0 +1,25 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) 2025 by Bruno Thomsen <[email protected]>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+from os import environ
+
+from report.report import ReportException
+
+
+def main():
+    print("Repology script")
+    print(environ)
+    exit(0)
+
+if __name__ == "__main__":
+    try:
+        main()
+    except ReportException as e:
+        print(f'Repology report failed: {e.args[0]}')
+        exit(1)
+
-- 
2.49.0


Reply via email to