Commits

Anonymous committed 1c6b65a

Support passing an alternative dbapi & settings instances.

Comments (0)

Files changed (1)

SmartLiveRebuild/core.py

 from SmartLiveRebuild.vcs import NonLiveEbuild
 
 class Config(ConfigParser):
-	def __init__(self):
+	def __init__(self, settings = None):
+		if settings is None:
+			settings = portage.settings
+
 		self._real_defaults = {
 			'color': 'True',
 			'config_file': '/etc/portage/smart-live-rebuild.conf',
 			'pretend': 'False',
 			'profile': 'smart-live-rebuild',
 			'quickpkg': 'False',
-			'setuid': str('userpriv' in portage.settings.features),
+			'setuid': str('userpriv' in settings.features),
 			'type': '',
 			'unprivileged_user': 'False'
 		}
 class SLRFailure(Exception):
 	pass
 
-def SmartLiveRebuild(opts):
+def SmartLiveRebuild(opts, db = None):
 	if not opts.color:
 		out.monochromize()
 
 			vcses = {}
 			envtmpf = tempfile.NamedTemporaryFile('w+b')
 			try:
-				db = portage.db[portage.settings['ROOT']]['vartree'].dbapi
+				if db is None:
+					db = portage.db[portage.settings['ROOT']]['vartree'].dbapi
+
 				for cpv in db.cpv_all():
 					try:
 						inherits = db.aux_get(cpv, ['INHERITED'])[0].split()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.