VMM/*: Moved some methods from classes to modules __init__.
- Adjusted many import statements.
- Small adjustments and whitespace cosmetics in Config.py
#!/usr/bin/env python# -*- coding: UTF-8 -*-# Copyright (c) 2008 - 2010, Pascal Volk# See COPYING for distribution information.importosos.sys.path.remove(os.sys.path[0])fromtimeimporttimefromConfigParserimportConfigParserfromshutilimportcopy2fromVirtualMailManager.constants.VERSIONimportVERSIONdefget_config_file():f=Nonefordin('/root','/usr/local/etc','/etc'):tmp=os.path.join(d,'vmm.cfg')ifos.path.isfile(tmp):f=tmpbreakiff:returnfelse:os.sys.stderr.write('error: vmm.cfg not found\n')raiseSystemExit(2)defupdate(cp):ifVERSION=='0.5.2':upd_052(cp)elifVERSION=='0.6.0':os.sys.stdout.write('info: nothing to do for version %s\n'%VERSION)returnelse:os.sys.stderr.write('error: the version %s is not supported by this script\n'%VERSION)raiseSystemExit(3)defget_cfg_parser(cf):fh=open(cf,'r')cp=ConfigParser()cp.readfp(fh)fh.close()returncpdefupdate_cfg_file(cp,cf):copy2(cf,cf+'.bak.'+str(time()))fh=open(cf,'w')cp.write(fh)fh.close()defadd_sections(cp,sections):forsectioninsections:ifnotcp.has_section(section):cp.add_section(section)defmove_option(cp,src,dst):ds,do=dst.split('.')ifnotcp.has_option(ds,do):ss,so=src.split('.')cp.set(ds,do,cp.get(ss,so))cp.remove_option(ss,so)sect_opt.append((dst,'R'))defadd_option(cp,dst,val):ds,do=dst.split('.')ifnotcp.has_option(ds,do):cp.set(ds,do,val)sect_opt.append((dst,'N'))defget_option(cp,src):ss,so=src.split('.')returncp.get(ss,so)defupd_052(cp):globalhad_confighad_config=cp.remove_section('config')add_sections(cp,('domain','account'))ifcp.has_section('domdir'):forsrc,dstin(('domdir.mode','domain.directory_mode'),('domdir.delete','domain.delete_directory'),('domdir.base','misc.base_directory')):move_option(cp,src,dst)cp.remove_section('domdir')ifcp.has_section('services'):forserviceincp.options('services'):move_option(cp,'services.%s'%service,'account.%s'%service)cp.remove_section('services')forsrc,dstin(('maildir.mode','account.directory_mode'),('maildir.diskusage','account.disk_usage'),('maildir.delete','account.delete_directory'),('misc.forcedel','domain.force_deletion'),('misc.passwdscheme','misc.password_scheme'),('misc.dovecotvers','misc.dovecot_version')):move_option(cp,src,dst)# def main():if__name__=='__main__':sect_opt=[]had_config=Falsecf=get_config_file()cp=get_cfg_parser(cf)update(cp)iflen(sect_opt):had_config=Falseupdate_cfg_file(cp,cf)sect_opt.sort()print'Please have a look at your configuration: %s'%cfprint'This are your Renamed/New settings:'fors_o,stinsect_opt:print'%s%s = %s'%(st,s_o,get_option(cp,s_o))ifhad_config:update_cfg_file(cp,cf)print'Removed section "config" with option "done" (obsolte)'print