[Yum] some refactoring...
Vladimir Bormotov
bor at vb.dn.ua
Tue Oct 29 23:59:10 UTC 2002
Hi!
now clientStuff.take_action() looks:
============== cut ===========
def take_action(cmds, nulist, uplist, newlist, obslist, tsInfo,
HeaderInfo, rpmDBInfo, obsdict):
from yummain import usage
_command = cmds.pop(0)
if (conf.uid != 0) and \
(_command in ['install', 'update', 'clean', 'upgrade', 'erase']):
errorlog(0, _('You need to be root to perform these commands'))
sys.exit(1)
if _command == 'install':
action_install(cmds, nulist, tsInfo, HeaderInfo, rpmDBInfo)
elif _command == 'provides':
action_provides(cmds, nulist, HeaderInfo, rpmDBInfo)
sys.exit(0)
elif _command == 'update':
action_update(cmds, nulist, uplist, newlist, obslist, tsInfo,
HeaderInfo, rpmDBInfo)
elif _command == 'upgrade':
action_upgrade(cmds, nulist, uplist, obslist, tsInfo, HeaderInfo,
rpmDBInfo, obsdict)
elif _command in ['erase', 'remove']:
action_erase(cmds, tsInfo, rpmDBInfo)
elif _command == 'list':
action_list(cmds, nulist, uplist, newlist, HeaderInfo, rpmDBInfo)
sys.exit(0)
elif _command == 'info':
action_info(cmds, nulist, uplist, newlist, HeaderInfo, rpmDBInfo)
sys.exit(0)
elif _command == 'clean':
action_clean(cmds, HeaderInfo, rpmDBInfo)
sys.exit(0)
else:
usage()
============== cut ===========
1. I just "extract" each action into separate function, named action_*
2. List object can pop element, as result we pop command from cmds, once.
each case modified like this:
- elif cmds[0] == 'info':
- cmds.remove(cmds[0])
+ elif _command == 'info':
I think, result very pretty ;)
--
Bor.
More information about the Yum
mailing list