Add apply templates option.

develop
Mike Hiretsky 13 years ago
parent df56b51362
commit 66f905557a

@ -97,6 +97,7 @@ class cl_assemble(color_print):
# progname - check by 'which' existing this program
# hideout - hide stdout
# foraction - perform only for cl_action == value
DEFAULT_FORACTION = ('make','syncupdate','update')
ACTION_LIST = \
[
# emerge -e system first
@ -117,7 +118,7 @@ class cl_assemble(color_print):
'foraction':('make',)},
# update prepareTemplates
{'command':"prepareTemplates()",
'foraction':('syncupdate','update'),
'foraction':('syncupdate','update','applytemplates'),
'hideout':True,
'message':_("Configurate by %s templates")% "assemble"
},
@ -296,6 +297,8 @@ class cl_assemble(color_print):
self.clVars.Set("cl_action","syncupdate",True)
elif action == "dependence":
self.clVars.Set("cl_action","dependence",True)
elif action == "applytemplates":
self.clVars.Set("cl_action","applytemplates",True)
else:
self.clVars.Set("cl_action","configure",True)
@ -876,10 +879,16 @@ class cl_assemble(color_print):
return self.make(self.makeFunc,force,True,False)
def updateSystem(self,force,withsync=True):
self.msgOperationComplete = \
_("System assembled is successfully")+"!"
self.msgOperationFailed = \
_("System compiling failed")
if self.clVars.Get('cl_action') == "applytemplates":
self.msgOperationComplete = \
_("Templates appling is successfully")+"!"
self.msgOperationFailed = \
_("Templates appling failed")
else:
self.msgOperationComplete = \
_("System assembled is successfully")+"!"
self.msgOperationFailed = \
_("System compiling failed")
if not self._pidCheck():
return False
stepWorld = filter(lambda x:x,
@ -926,7 +935,7 @@ class cl_assemble(color_print):
# cancel if action make
if forcesystem:
return True
else:
elif self.clVars.Get('cl_action') != "applytemplates":
# print warning and drop force option
self.printWARNING(_("WARNING") +": " +
_("assemble already finished"))
@ -1039,7 +1048,8 @@ class cl_assemble(color_print):
if "progname" in action:
if not self._checkChrootProgram(action["progname"]):
continue
if "foraction" in action and not actionName in action["foraction"]:
if not actionName in action.get('foraction',self.DEFAULT_FORACTION):
continue
if "command" in action:
command = action["command"]
@ -1072,7 +1082,7 @@ class cl_assemble(color_print):
if not "command" in action:
continue
# if specified "progname" check by which in chroot this prog
if "foraction" in action and not actionName in action["foraction"]:
if not actionName in action.get('foraction',self.DEFAULT_FORACTION):
continue
command = action["command"]
if "args" in action:

@ -43,6 +43,10 @@ CMD_OPTIONS = [{'shortOption':"D",
'longOption':"update-without-sync",
'help':_("update system without performing eix-sync")
},
{'shortOption':"T",
'longOption':"apply-templates",
'help':_("configure by %s templates")% "assemble"
},
{'longOption':"break",
'help':_("break system assembling")
},
@ -81,11 +85,12 @@ class make_cmd(assemble_cmd):
opt.color_control,
check_values=self.checkOpts)
self.logicObj = cl_assemble()
self.optionsBreakIncompatible=["U","skipfirst","m","u","D"]
self.optionsDependenceIncompatible=["U","skipfirst","m","u","break"]
self.optionsMakeIncompatible=["U","D","u","break"]
self.optionsUpdateIncompatible=["U","m","D","break"]
self.optionsUpdatenosyncIncompatible=["D","m","u","break"]
self.optionsBreakIncompatible=["U","skipfirst","m","u","D","t"]
self.optionsDependenceIncompatible=["U","skipfirst","m","u","break","t"]
self.optionsMakeIncompatible=["U","D","u","break","t"]
self.optionsUpdateIncompatible=["U","m","D","break","t"]
self.optionsUpdatenosyncIncompatible=["D","m","u","break","t"]
self.optionsApplytemplatesIncompatible=["D","m","u","break","U"]
def checkOpts(self, values, args):
"""Check values all specified options."""
@ -110,11 +115,14 @@ class make_cmd(assemble_cmd):
self.checkIncompatibleParam("update")
if values.U:
self.checkIncompatibleParam("update-nosync")
if values.T:
self.checkIncompatibleParam("applytemplates")
if not (values.m or getattr(values,"break") or
values.D or values.u or values.U):
values.D or values.u or values.U or values.T):
self.optobj.error(
_("need specify action: make (-m),"
" break (--break), update (-u|-U) or check dependence (-D)"))
" break (--break), update (-u|-U), apply templates (-T)"
" or check dependence (-D)"))
return (values, args)
def setAction(self):
@ -127,6 +135,8 @@ class make_cmd(assemble_cmd):
action = "syncupdate"
elif self.optobj.values.U:
action = "update"
elif self.optobj.values.T:
action = "applytemplates"
else:
action = "dependence"
self.logicObj.setAction(action)

@ -58,6 +58,9 @@ if __name__ == "__main__":
if options.u:
if not assemble.updateSystem(options.f):
sys.exit(1)
if options.T:
if not assemble.updateSystem(options.f,False):
sys.exit(1)
if options.U:
if not assemble.updateSystem(options.f,False):
sys.exit(1)

Loading…
Cancel
Save