[oe-commits] Paul Eggleton : recipetool: create: fix creating empty shell functions

git at git.openembedded.org git at git.openembedded.org
Tue Sep 22 17:14:22 UTC 2015


Module: openembedded-core.git
Branch: master-next
Commit: ff14d9e5b935b99b2efde479515e54c02ba58f6e
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=ff14d9e5b935b99b2efde479515e54c02ba58f6e

Author: Paul Eggleton <paul.eggleton at linux.intel.com>
Date:   Tue Sep 22 17:21:28 2015 +0100

recipetool: create: fix creating empty shell functions

The shell considers empty functions to be a syntax error, so for
template shell functions that contain only comments (or no lines at all)
then add a : to act as a no-op which avoids the syntax error.

Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 scripts/lib/recipetool/create.py | 22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index c4754db..99d9cc8 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -46,10 +46,26 @@ class RecipeHandler():
             results.extend(glob.glob(os.path.join(path, spec)))
         return results
 
-    def genfunction(self, outlines, funcname, content):
-        outlines.append('%s () {' % funcname)
+    def genfunction(self, outlines, funcname, content, python=False, forcespace=False):
+        if python:
+            prefix = 'python '
+        else:
+            prefix = ''
+        outlines.append('%s%s () {' % (prefix, funcname))
+        if python or forcespace:
+            indent = '    '
+        else:
+            indent = '\t'
+        addnoop = not python
         for line in content:
-            outlines.append('\t%s' % line)
+            outlines.append('%s%s' % (indent, line))
+            if addnoop:
+                strippedline = line.lstrip()
+                if strippedline and not strippedline.startswith('#'):
+                    addnoop = False
+        if addnoop:
+            # Without this there'll be a syntax error
+            outlines.append('%s:' % indent)
         outlines.append('}')
         outlines.append('')
 



More information about the Openembedded-commits mailing list