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.

(From OE-Core rev: ff14d9e5b935b99b2efde479515e54c02ba58f6e)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton 2015-09-22 17:21:28 +01:00 committed by Richard Purdie
parent 30c7e7ac41
commit a35ad723ce

View File

@ -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('')