55 lines
1.3 KiB
Python
55 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import piksemel
|
|
|
|
def updateIndex():
|
|
import os
|
|
import subprocess
|
|
|
|
join = os.path.join
|
|
fontsPath = "/usr/share/fonts"
|
|
encodingsPath = join(fontsPath, "encodings")
|
|
fontsScale = "fonts.scale"
|
|
fontsDir = "fonts.dir"
|
|
|
|
for root, dirs, files in os.walk(fontsPath):
|
|
if root.startswith(encodingsPath):
|
|
continue
|
|
|
|
fonts = files[:]
|
|
|
|
if fontsScale in fonts:
|
|
fonts.remove(fontsScale)
|
|
os.unlink(join(root, fontsScale))
|
|
|
|
if fontsDir in fonts:
|
|
fonts.remove(fontsDir)
|
|
os.unlink(join(root, fontsDir))
|
|
|
|
if not fonts:
|
|
continue
|
|
|
|
print "Creating %s ..." % join(root, fontsScale)
|
|
subprocess.call(["/usr/bin/mkfontscale", "-u", root])
|
|
|
|
print "Creating %s ..." % join(root, fontsDir)
|
|
subprocess.call(["/usr/bin/mkfontdir", root])
|
|
|
|
def checkPaths(filepath):
|
|
doc = piksemel.parse(filepath)
|
|
|
|
for item in doc.tags("File"):
|
|
path = item.getTagData("Path")
|
|
if path.startswith("usr/share/fonts/"):
|
|
updateIndex()
|
|
break
|
|
|
|
def setupPackage(metapath, filepath):
|
|
checkPaths(filepath)
|
|
|
|
def cleanupPackage(metapath, filepath):
|
|
pass
|
|
|
|
def postCleanupPackage(metapath, filepath):
|
|
checkPaths(filepath)
|