[oe-commits] Chris Larson : checkbashisms: add initial class to run against ${S}

git version control git at git.openembedded.org
Mon Nov 15 23:11:14 UTC 2010


Module: openembedded.git
Branch: master
Commit: fd2d95283d2b1e78fc0842ae07618a69ce5b5ac3
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=fd2d95283d2b1e78fc0842ae07618a69ce5b5ac3

Author: Chris Larson <chris_larson at mentor.com>
Date:   Mon Nov 15 16:03:21 2010 -0700

checkbashisms: add initial class to run against ${S}

Currently requires that you already have checkbashisms available somewhere in
your PATH.  Runs against all '#!/bin/sh' scripts in ${S}, to attempt to find
and fix issues with /bin/sh not being bash.

Signed-off-by: Chris Larson <chris_larson at mentor.com>

---

 classes/checkbashisms.bbclass |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/classes/checkbashisms.bbclass b/classes/checkbashisms.bbclass
new file mode 100644
index 0000000..3a38e34
--- /dev/null
+++ b/classes/checkbashisms.bbclass
@@ -0,0 +1,32 @@
+python do_checkbashisms () {
+    import re
+    import oe.process
+    import oe.path
+
+    def readline(path):
+        try:
+            return iter(open(path, "r")).next()
+        except StopIteration:
+            pass
+
+    shebang = re.compile("^#! */bin/sh$")
+    errors = False
+    srcdir = d.getVar("S", True)
+    for path in oe.path.find(srcdir):
+        line = readline(path)
+        if line and shebang.match(line):
+            try:
+                output = oe_run(d, ["checkbashisms", path])
+            except oe.process.ExecutionError, exc:
+                if not errors:
+                    errors = True
+                bb.note(str(exc))
+
+    if errors:
+        bb.fatal("bashisms were identified, aborting")
+}
+addtask checkbashisms after do_patch
+
+do_checkbashisms_all[recrdeptask] = "do_checkbashisms"
+do_checkbashisms_all[nostamp] = "1"
+addtask checkbashisms_all after do_checkbashisms





More information about the Openembedded-commits mailing list