Add installimg command for use in the templates

installimg SRCDIR DESTFILE
  Create a compressed cpio archive of the contents of SRCDIR and place
  it in DESTFILE.

  If SRCDIR doesn't exist or is empty nothing is created.

Examples:
  installimg ${LORAXDIR}/product/ images/product.img
This commit is contained in:
Brian C. Lane 2014-11-04 18:57:21 -08:00
parent a7a3dd276d
commit b064ae6166

View File

@ -31,6 +31,7 @@ from pylorax.sysutils import joinpaths, cpfile, mvfile, replace, remove
from pylorax.yumhelper import LoraxDownloadCallback, LoraxTransactionCallback, LoraxRpmCallback
from pylorax.base import DataHolder
from pylorax.executils import runcmd, runcmd_output
from pylorax.imgutils import mkcpio
from mako.lookup import TemplateLookup
from mako.exceptions import text_error_template
@ -233,6 +234,23 @@ class LoraxTemplateRunner(object):
for src in rglob(self._in(srcglob), fatal=True):
cpfile(src, self._out(dest))
def installimg(self, srcdir, destfile):
'''
installimg SRCDIR DESTFILE
Create a compressed cpio archive of the contents of SRCDIR and place
it in DESTFILE.
If SRCDIR doesn't exist or is empty nothing is created.
Examples:
installimg ${LORAXDIR}/product/ images/product.img
installimg ${LORAXDIR}/updates/ images/updates.img
'''
if not os.path.isdir(self._in(srcdir)) or not os.listdir(self._in(srcdir)):
return
logger.info("Creating image file %s from contents of %s", self._out(destfile), self._in(srcdir))
mkcpio(self._in(srcdir), self._out(destfile))
def mkdir(self, *dirs):
'''
mkdir DIR [DIR ...]