sbsv2/raptor/python/raptor.py
branchwip
changeset 498 564986768b79
parent 457 9bebdb95e0de
child 504 ea75c3a64a17
equal deleted inserted replaced
461:0c5ca7f6d8ae 498:564986768b79
   446 
   446 
   447 	When operated from the command-line there is a single Raptor object
   447 	When operated from the command-line there is a single Raptor object
   448 	created by the Main function. When operated by an IDE several Raptor
   448 	created by the Main function. When operated by an IDE several Raptor
   449 	objects may be created and operated at the same time."""
   449 	objects may be created and operated at the same time."""
   450 
   450 
   451 
   451 	# mission enumeration
   452 	M_BUILD = 1
   452 	M_BUILD = 1
   453 	M_VERSION = 2
   453 	M_QUERY = 2
       
   454 	M_VERSION = 3
   454 
   455 
   455 	def __init__(self, home = None):
   456 	def __init__(self, home = None):
   456 
   457 
   457 		self.DefaultSetUp(home)
   458 		self.DefaultSetUp(home)
   458 
   459 
   518 		self.doExport = True
   519 		self.doExport = True
   519 		self.noBuild = False
   520 		self.noBuild = False
   520 		self.noDependInclude = False
   521 		self.noDependInclude = False
   521 		self.noDependGenerate = False
   522 		self.noDependGenerate = False
   522 		self.projects = set()
   523 		self.projects = set()
   523 
   524 		self.queries = []
       
   525 		
   524 		self.cache = raptor_cache.Cache(self)
   526 		self.cache = raptor_cache.Cache(self)
   525 		self.override = {env: str(self.home)}
   527 		self.override = {env: str(self.home)}
   526 		self.targets = []
   528 		self.targets = []
   527 		self.defaultTargets = []
   529 		self.defaultTargets = []
   528 
   530 
   715 
   717 
   716 	def AddProject(self, projectName):
   718 	def AddProject(self, projectName):
   717 		self.projects.add(projectName.lower())
   719 		self.projects.add(projectName.lower())
   718 		return True
   720 		return True
   719 
   721 
       
   722 	def AddQuery(self, q):
       
   723 		self.queries.append(q)
       
   724 		self.mission = Raptor.M_QUERY
       
   725 		return True
       
   726 	
   720 	def FilterList(self, value):
   727 	def FilterList(self, value):
   721 		self.filterList = value
   728 		self.filterList = value
   722 		return True
   729 		return True
   723 
   730 
   724 	def IgnoreOsDetection(self, value):
   731 	def IgnoreOsDetection(self, value):
  1217 					newcg.add(c)
  1224 					newcg.add(c)
  1218 			layers = [newcg]
  1225 			layers = [newcg]
  1219 
  1226 
  1220 		return layers
  1227 		return layers
  1221 
  1228 
       
  1229 	def Query(self):
       
  1230 		"process command-line queries."
       
  1231 		
       
  1232 		if self.mission != Raptor.M_QUERY:
       
  1233 			return 0
       
  1234 		
       
  1235 		# establish an object cache based on the current settings
       
  1236 		self.LoadCache()
       
  1237 			
       
  1238 		# our "self" is a valid object for initialising an API Context
       
  1239 		import raptor_api
       
  1240 		api = raptor_api.Context(self)
       
  1241 		
       
  1242 		print "<sbs version='%s'>" % raptor_version.fullversion()
       
  1243 		
       
  1244 		for q in self.queries:
       
  1245 			try:
       
  1246 				print api.StringQuery(q)
       
  1247 				
       
  1248 			except Exception, e:
       
  1249 				self.Error("exception '%s' with query '%s'", str(e), q)
       
  1250 		
       
  1251 		print "</sbs>"	
       
  1252 		return self.errorCode
       
  1253 	
  1222 	def Build(self):
  1254 	def Build(self):
  1223 
  1255 
  1224 		if self.mission != Raptor.M_BUILD: # help or version requested instead.
  1256 		if self.mission != Raptor.M_BUILD: # help or version requested instead.
  1225 			return 0
  1257 			return 0
  1226 
  1258 
  1354 	DisplayBanner()
  1386 	DisplayBanner()
  1355 
  1387 
  1356 	# object which represents a build
  1388 	# object which represents a build
  1357 	b = Raptor.CreateCommandlineBuild(argv)
  1389 	b = Raptor.CreateCommandlineBuild(argv)
  1358 
  1390 
       
  1391 	if b.mission == Raptor.M_QUERY:
       
  1392 		return b.Query()
       
  1393 	
  1359 	return b.Build()
  1394 	return b.Build()
  1360 
  1395 
  1361 
  1396 
  1362 def DisplayBanner():
  1397 def DisplayBanner():
  1363 	"""Stuff that needs printing out for every command."""
  1398 	"""Stuff that needs printing out for every command."""