Some linters can take a while to run. Speed up the run-edit loop during
recipe development by making it possible to run a single linter, and add
a way of listing available linters.

Signed-off-by: Roland Hieber <[email protected]>
---
 bin/ptxdist                         |  5 ++++-
 doc/ref_parameter.rst               |  4 +++-
 scripts/lib/ptxd_make_world_lint.sh | 30 ++++++++++++++++++++++++-----
 3 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/bin/ptxdist b/bin/ptxdist
index c41065311f0c..97370d92fc03 100755
--- a/bin/ptxdist
+++ b/bin/ptxdist
@@ -776,7 +776,8 @@ Misc:
   printnext <var>              assumes that the contents of <var> is another
                                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
+  lint [<linter>]              run some basic checks for the BSP and PTXdist
+                               (see 'lint list' for a list of available 
linters)
   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.
@@ -1831,6 +1832,8 @@ EOF
                        ;;
                lint)
                        export PTXDIST_GEN_ALL=1
+                       export PTXDIST_LINT_TARGET=${1:-all}
+                       shift
                        check_premake_compiler &&
                        ptxd_make_log ptxdist-lint &&
                        if [ -e "${PTXDIST_TEMPDIR}/lint-failed" ]; then
diff --git a/doc/ref_parameter.rst b/doc/ref_parameter.rst
index a5b9bfe9eca6..3b49ee68b7ce 100644
--- a/doc/ref_parameter.rst
+++ b/doc/ref_parameter.rst
@@ -250,10 +250,12 @@ Misc Actions
   For the specified package (or all selected packages), check the MD5 sums
   of license files.
 
-``lint``
+``lint [<linter>]``
   check the BSP and PTXdist for all kinds of issues. These are not checks
   for things that cause build errors. Instead the checks look for
   inconsistencies that may cause hidden problems.
+  ``<linter>`` can be a single linter to run, or ``list`` to print a list of
+  available linters, or ``all`` to run all linters (the default).
 
 ``list-packages``
   print a list of all selected packages. This list does not include the
diff --git a/scripts/lib/ptxd_make_world_lint.sh 
b/scripts/lib/ptxd_make_world_lint.sh
index 06926e58d614..a08198411292 100644
--- a/scripts/lib/ptxd_make_world_lint.sh
+++ b/scripts/lib/ptxd_make_world_lint.sh
@@ -199,10 +199,30 @@ export -f ptxd_make_world_lint_credits
 PTXDIST_LINT_COMMANDS="${PTXDIST_LINT_COMMANDS} credits"
 
 ptxd_make_world_lint() {
-    local command
-
-    for command in ${PTXDIST_LINT_COMMANDS}; do
-       ptxd_make_world_lint_${command}
-    done
+    local command done
+
+    case "${PTXDIST_LINT_TARGET}" in
+        list|help)
+            echo "Available linters: ${PTXDIST_LINT_COMMANDS}"
+            return
+            ;;
+        all)
+            for command in ${PTXDIST_LINT_COMMANDS}; do
+                ptxd_make_world_lint_${command}
+            done
+            ;;
+        *)
+            for command in ${PTXDIST_LINT_COMMANDS}; do
+                if [ "${PTXDIST_LINT_TARGET}" = "${command}" ]; then
+                    done=1
+                    ptxd_make_world_lint_${command}
+                fi
+            done
+            if [ -z "${done}" ]; then
+                ptxd_bailout "No such linter: '${PTXDIST_LINT_TARGET}'" \
+                    "Available linters: ${PTXDIST_LINT_COMMANDS}"
+            fi
+            ;;
+    esac
 }
 export -f ptxd_make_world_lint
-- 
2.29.2


_______________________________________________
ptxdist mailing list
[email protected]
To unsubscribe, send a mail with subject "unsubscribe" to 
[email protected]

Reply via email to