Sophie

Sophie

distrib > * > 2008.0 > x86_64 > by-pkgid > c4aaebff5a034775f37cbc49827cf3b9 > files > 23

smart-0.51-17mdv2008.0.src.rpm

#!/usr/bin/python
#
# a script that convert urpmi configuration to smart configuration
# run smart update to complete the conversion
#
# this script is released under the term of GPL v2
# 18/07/2005, by Michael Scherer ( misc@mandriva.org )
# 09/09/2007 modified by David Walluck

import string

def normalise_name(name):
    #TODO
    return name.strip()

def fetch_urpmi_cfg():
    config={}
    in_block=0
    urpmi_cfg_f=open('/etc/urpmi/urpmi.cfg')
    for line in urpmi_cfg_f.readlines():
        line = line.strip()
        if len(line) <= 0:
            continue
        if line[-1] == '}':
            in_block = 0
        if line[-1] == '{':
            in_block = 1
            s = line.split(' ')
            if len(s) == 1:
                continue
            url = s[-2]
            name = ' '.join(s[0:-2])
            config[name] = {}
            config[name]['url'] = url
            continue
        if not in_block:
            continue
        if line.find(':') > 0:
            (key,value) = line.split(':')
            config[name][key.strip()] = value.strip()
        else:
            config[name][line.strip()] = 1
    return config


from smart import *
import smart
ctrl = smart.init()
urpmi_cfg = fetch_urpmi_cfg()

for i in urpmi_cfg:
    name = i
    try:
        while smart.sysconf.get('channels').has_key(name):
            name = name + '_'
    except AttributeError:
        pass
    
    name = normalise_name(i)

    baseurl = urpmi_cfg[i]['url'].replace('ssh://', 'scp://')

    hdlurl = urpmi_cfg[i]['url'] + '/'

    if urpmi_cfg[i].has_key('with_hdlist'):
        hdlurl += urpmi_cfg[i]['with_hdlist']
    elif urpmi_cfg[i].has_key('media_info_dir'):
        hdlurl += urpmi_cfg[i]['media_info_dir'] + '/hdlist.cz'
    else:
        hdlurl += 'hdlist.cz'

    hdlurl = hdlurl.replace('ssh://', 'scp://')   

    sysconf.set(("channels", name),
                {"type": "urpmi",
                 "name": i,
                 "baseurl": baseurl,
                 "hdlurl": hdlurl})

ctrl.saveSysConf()