Переустановил себе Кубунту на Интерпид с КДЕ 4.1 и по случаю скриптик написал:
#! /usr/bin/env python
import os
import os.path
import re
p = os.path
def relink(name, newlink, link):
try:
os.unlink(name)
os.symlink(newlink, name)
print "relinked"
except OSError:
"could not relink %(name)s from %(link)s to %(relink)s" %vars()
def print_and_relink(opt):
link,newlink = os.readlink(opt.Name), False
print "%s--> %s" %(opt.Name,link)
if ( opt.From and opt.To):
try:
newlink = re.sub(opt.From, opt.To,link)
print "relinked path : %s" %newlink
except:
print "substitution failed"
if (newlink and opt.Exec ):
relink(name=opt.Name, newlink=newlink, link=link)
def _app (opt , dirname , names):
for name in names :
name = p.join(dirname , name)
if p.islink(name) :
opt.Name = name
print_and_relink(opt)
def main():
from optparse import OptionParser
parser = OptionParser()
parser.add_option("--from", "-f", dest = "From",
help = "expression to be substituted")
parser.add_option("--to", "-t", dest = "To",
help = "substitute expression")
parser.add_option("--relink", "-e", dest = "Exec", action="store_true",
default=False,
help = "actually relink softlinks to new path")
parser.add_option("--dir", "-d", dest = "Dir",
help = "root directory to relink", default = os.curdir)
(options, args) = parser.parse_args()
p.walk(options.Dir, _app , options)
if __name__ == "__main__":
main()