def SourceFactory(settings): """ return sourceBase derived instance for recent settings""" EmergeDebug.trace("SourceFactory called", 1) source = None if settings.hasTarget(): if settings.hasMultipleTargets(): url = settings.targetAt(0) else: url = settings.target() source = ArchiveSource(settings) ## \todo move settings access into info class if settings.hasSvnTarget(): url = settings.svnTarget() sourceType = utils.getVCSType( url ) if sourceType == "svn": source = SvnSource(settings) elif sourceType == "hg": source = HgSource(settings) elif sourceType == "git": source = GitSource(settings) if source == None: EmergeDebug.die("none or unsupported source system set") if not source.subinfo: source.subinfo = settings source.url = url return source
def SourceFactory(settings): """ return sourceBase derived instance for recent settings""" utils.trace( "SourceFactory called", 1 ) source = None if settings.hasTarget(): if settings.hasMultipleTargets(): url = settings.targetAt(0) else: url = settings.target() source = ArchiveSource(settings) ## \todo move settings access into info class if settings.hasSvnTarget(): url = settings.svnTarget() sourceType = utils.getVCSType( url ) if sourceType == "svn": source = SvnSource(settings) elif sourceType == "hg": source = HgSource(settings) elif sourceType == "git": source = GitSource(settings) ## \todo complete more cvs access schemes elif sourceType == "cvs": source = CvsSource(settings) if source == None: utils.die("none or unsupported source system set") if not source.subinfo: source.subinfo = settings source.url = url return source