|
|
@ -173,6 +173,16 @@ class cl_builder(color_print):
|
|
|
|
self.sourceDistr.close()
|
|
|
|
self.sourceDistr.close()
|
|
|
|
self.sourceDistr = None
|
|
|
|
self.sourceDistr = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def getFreeFor(self,pathname):
|
|
|
|
|
|
|
|
"""Get free for pathname"""
|
|
|
|
|
|
|
|
dfProcess = process("/bin/df","-h",pathname)
|
|
|
|
|
|
|
|
data = filter(lambda x:x.startswith('/dev'),dfProcess)
|
|
|
|
|
|
|
|
if data:
|
|
|
|
|
|
|
|
data = filter(lambda x:x,data[0].split())
|
|
|
|
|
|
|
|
if len(data)>3:
|
|
|
|
|
|
|
|
return data[3]
|
|
|
|
|
|
|
|
return "Unknown"
|
|
|
|
|
|
|
|
|
|
|
|
def printInfo(self):
|
|
|
|
def printInfo(self):
|
|
|
|
self.printSUCCESS(_("Creating image of") + " Calculate Linux")
|
|
|
|
self.printSUCCESS(_("Creating image of") + " Calculate Linux")
|
|
|
|
self.defaultPrint("%s\n"%_("System information"))
|
|
|
|
self.defaultPrint("%s\n"%_("System information"))
|
|
|
@ -184,11 +194,17 @@ class cl_builder(color_print):
|
|
|
|
self.clVars.Get('os_builder_linux_ver'))
|
|
|
|
self.clVars.Get('os_builder_linux_ver'))
|
|
|
|
self.printSUCCESS(_("Machine hardware name")+": %s"%
|
|
|
|
self.printSUCCESS(_("Machine hardware name")+": %s"%
|
|
|
|
self.clVars.Get('os_builder_arch_machine'))
|
|
|
|
self.clVars.Get('os_builder_arch_machine'))
|
|
|
|
|
|
|
|
self.printSUCCESS(_("Free disk space for iso building: %s")%
|
|
|
|
|
|
|
|
self.getFreeFor(path.dirname(path.normpath(
|
|
|
|
|
|
|
|
self.clVars.Get('cl_builder_iso_path')))))
|
|
|
|
|
|
|
|
self.printSUCCESS(_("Free disk space for iso image: %s")%
|
|
|
|
|
|
|
|
self.getFreeFor(self.clVars.Get('cl_builder_image')))
|
|
|
|
self.defaultPrint("%s\n"%_("Perform pre-install checkups"))
|
|
|
|
self.defaultPrint("%s\n"%_("Perform pre-install checkups"))
|
|
|
|
|
|
|
|
|
|
|
|
if self.clVars.Get('cl_builder_image'):
|
|
|
|
if self.clVars.Get('cl_builder_image'):
|
|
|
|
self.printSUCCESS(_("Image will be created at: %s\n")%
|
|
|
|
self.printSUCCESS(_("Image will be created at: %s\n")%
|
|
|
|
self.clVars.Get('cl_builder_image'))
|
|
|
|
self.clVars.Get('cl_builder_image'))
|
|
|
|
|
|
|
|
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
self.printWARNING("No path for image creating.")
|
|
|
|
self.printWARNING("No path for image creating.")
|
|
|
|
|
|
|
|
|
|
|
@ -205,8 +221,10 @@ class cl_builder(color_print):
|
|
|
|
self.clVars.Get('os_builder_arch_machine'))
|
|
|
|
self.clVars.Get('os_builder_arch_machine'))
|
|
|
|
self.defaultPrint("%s\n"%_("Perform pre-install checkups"))
|
|
|
|
self.defaultPrint("%s\n"%_("Perform pre-install checkups"))
|
|
|
|
|
|
|
|
|
|
|
|
self.printSUCCESS(_("Image will be created in: %s\n")%
|
|
|
|
self.printSUCCESS(_("Image will be created in: %s")%
|
|
|
|
self.clVars.Get('cl_builder_iso_path'))
|
|
|
|
self.clVars.Get('cl_builder_iso_path'))
|
|
|
|
|
|
|
|
self.printSUCCESS(_("Follow squash images will be removed: %s\n")%
|
|
|
|
|
|
|
|
", ".join(self.clVars.Get('cl_builder_remove_squash')))
|
|
|
|
|
|
|
|
|
|
|
|
def checkVariables(self,rescratch=False):
|
|
|
|
def checkVariables(self,rescratch=False):
|
|
|
|
"""Check values of variables"""
|
|
|
|
"""Check values of variables"""
|
|
|
@ -257,6 +275,7 @@ class cl_builder(color_print):
|
|
|
|
|
|
|
|
|
|
|
|
def _rescratchLogic(self,force=False):
|
|
|
|
def _rescratchLogic(self,force=False):
|
|
|
|
self.clVars.Set('cl_builder_iso_path','/mnt/flash',True)
|
|
|
|
self.clVars.Set('cl_builder_iso_path','/mnt/flash',True)
|
|
|
|
|
|
|
|
self.clVars.Get('cl_builder_remove_squash')
|
|
|
|
buildDirectory = self.clVars.Get('cl_builder_iso_path')
|
|
|
|
buildDirectory = self.clVars.Get('cl_builder_iso_path')
|
|
|
|
sourceDirectory = self.clVars.Get('cl_builder_path')
|
|
|
|
sourceDirectory = self.clVars.Get('cl_builder_path')
|
|
|
|
bindDirectory = pathJoin(buildDirectory,
|
|
|
|
bindDirectory = pathJoin(buildDirectory,
|
|
|
@ -281,6 +300,19 @@ class cl_builder(color_print):
|
|
|
|
self.printMessageForTest(_("Creating squash image"))
|
|
|
|
self.printMessageForTest(_("Creating squash image"))
|
|
|
|
self.targetDistr.installFrom(self.sourceDistr)
|
|
|
|
self.targetDistr.installFrom(self.sourceDistr)
|
|
|
|
self.printByResult(True)
|
|
|
|
self.printByResult(True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.printMessageForTest(_("Removing old images"))
|
|
|
|
|
|
|
|
oldImages = map(lambda x:pathJoin(buildDirectory,x),
|
|
|
|
|
|
|
|
self.clVars.Get('cl_builder_remove_squash'))
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
map(lambda x:os.unlink(x),oldImages)
|
|
|
|
|
|
|
|
except (Exception,KeyboardInterrupt),e:
|
|
|
|
|
|
|
|
raise BuilderError(_("Can not remove old files")+":\n%s"%str(e))
|
|
|
|
|
|
|
|
self.printByResult(True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.printMessageForTest(_("Performing syncronization"))
|
|
|
|
|
|
|
|
processSync = process("/bin/sync")
|
|
|
|
|
|
|
|
self.printByResult(processSync.success())
|
|
|
|
return True
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
def makeIsoImage(self,force=False):
|
|
|
|
def makeIsoImage(self,force=False):
|
|
|
@ -331,7 +363,7 @@ class cl_builder(color_print):
|
|
|
|
if error:
|
|
|
|
if error:
|
|
|
|
for line in filter(lambda x: x,str(error).split('\n')):
|
|
|
|
for line in filter(lambda x: x,str(error).split('\n')):
|
|
|
|
self.printERROR(line)
|
|
|
|
self.printERROR(line)
|
|
|
|
self.printERROR(_("Iso building failed"))
|
|
|
|
self.printERROR(_("System building failed"))
|
|
|
|
return False
|
|
|
|
return False
|
|
|
|
self.printSUCCESS(_("Iso has built successfully"))
|
|
|
|
self.printSUCCESS(_("System has built successfully"))
|
|
|
|
return True
|
|
|
|
return True
|
|
|
|