[server] refactor cleanup() code used by "cubicweb-ctl delete"
Try to make each logical step (i.e. "delete database" and "delete user")
a bit more visible and explicit.
This is a preparatory work to easily plug the "delete namespace" feature.
#!/usr/bin/python"""usage: fix-po-encodings [filename...]change the encoding of the po files passed as arguments to utf-8"""import sysimport reimport codecsdef change_encoding(filename, target='UTF-8'): fdesc = open(filename) data = fdesc.read() fdesc.close() encoding = find_encoding(data) if encoding == target: return data = fix_encoding(data, target) data = unicode(data, encoding) fdesc = codecs.open(filename, 'wb', encoding=target) fdesc.write(data) fdesc.close()def find_encoding(data): regexp = re.compile(r'"Content-Type:.* charset=([a-zA-Z0-9-]+)\\n"', re.M) mo = regexp.search(data) if mo is None: raise ValueError('No encoding declaration') return mo.group(1)def fix_encoding(data, target_encoding): regexp = re.compile(r'("Content-Type:.* charset=)(.*)(\\n")', re.M) return regexp.sub(r'\1%s\3' % target_encoding, data)for filename in sys.argv[1:]: print filename change_encoding(filename)