X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fdbconn.py;h=e88911c5109201ab597cd3f2ca9aba0a75dfdd6e;hb=79c5b95d945263aaaa3e035e6c90d12754960af3;hp=f314b3f7ef37a2defaf51c6b127c269265bac648;hpb=3c14e39afe707f650e3aae38f70c0b91dbd14573;p=dak.git diff --git a/daklib/dbconn.py b/daklib/dbconn.py index f314b3f7..e88911c5 100755 --- a/daklib/dbconn.py +++ b/daklib/dbconn.py @@ -752,7 +752,7 @@ class BuildQueue(object): # Crude hack with open and append, but this whole section is and should be redone. if self.notautomatic: release=open("Release", "a") - release.write("NotAutomatic: yes") + release.write("NotAutomatic: yes\n") release.close() # Sign if necessary @@ -1132,6 +1132,19 @@ def get_component(component, session=None): __all__.append('get_component') +@session_wrapper +def get_component_names(session=None): + """ + Returns list of strings of component names. + + @rtype: list + @return: list of strings of component names + """ + + return [ x.component_name for x in session.query(Component).all() ] + +__all__.append('get_component_names') + ################################################################################ class DBConfig(object): @@ -1777,6 +1790,34 @@ def get_keyring(keyring, session=None): __all__.append('get_keyring') +@session_wrapper +def get_active_keyring_paths(session=None): + """ + @rtype: list + @return: list of active keyring paths + """ + return [ x.keyring_name for x in session.query(Keyring).filter(Keyring.active == True).order_by(desc(Keyring.priority)).all() ] + +__all__.append('get_active_keyring_paths') + +@session_wrapper +def get_primary_keyring_path(session=None): + """ + Get the full path to the highest priority active keyring + + @rtype: str or None + @return: path to the active keyring with the highest priority or None if no + keyring is configured + """ + keyrings = get_active_keyring_paths() + + if len(keyrings) > 0: + return keyrings[0] + else: + return None + +__all__.append('get_primary_keyring_path') + ################################################################################ class KeyringACLMap(object): @@ -2640,7 +2681,8 @@ def split_uploaders(uploaders_list): Split the Uploaders field into the individual uploaders and yield each of them. Beware: email addresses might contain commas. ''' - for uploader in uploaders_list.replace(">, ", ">\t").split("\t"): + import re + for uploader in re.sub(">[ ]*,", ">\t", uploaders_list).split("\t"): yield uploader.strip() @session_wrapper