mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Roland Hieber <rhi@pengutronix.de>
To: ptxdist@pengutronix.de
Cc: Roland Hieber <rhi@pengutronix.de>
Subject: [ptxdist] [PATCH 2/2] ptxd_make_world_lint: allow single linters to be run
Date: Sun,  6 Jun 2021 16:01:47 +0200	[thread overview]
Message-ID: <20210606140144.28444-2-rhi@pengutronix.de> (raw)
In-Reply-To: <20210606140144.28444-1-rhi@pengutronix.de>

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 <rhi@pengutronix.de>
---
 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
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de


  reply	other threads:[~2021-06-06 14:02 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-06 14:01 [ptxdist] [PATCH 1/2] ptxd_make_world_lint_credits: fix typo Roland Hieber
2021-06-06 14:01 ` Roland Hieber [this message]
2021-06-11  7:53   ` [ptxdist] [PATCH 2/2] ptxd_make_world_lint: allow single linters to be run Michael Olbrich
2021-06-12 17:57     ` Roland Hieber
2021-06-16 10:35 ` [ptxdist] [APPLIED] ptxd_make_world_lint_credits: fix typo Michael Olbrich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210606140144.28444-2-rhi@pengutronix.de \
    --to=rhi@pengutronix.de \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox