40 lines
1.0 KiB
Python
40 lines
1.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import piksemel
|
|
import sys
|
|
import os
|
|
|
|
pythonPath="/usr/lib/python%d.%d" % sys.version_info[:2]
|
|
|
|
def byteCompile(filepath):
|
|
doc = piksemel.parse(filepath)
|
|
paths = []
|
|
for item in doc.tags("File"):
|
|
path = item.getTagData("Path")
|
|
if path.endswith(".py") and not path.startswith("usr/share/doc/"):
|
|
paths.append("/"+path)
|
|
|
|
if paths:
|
|
os.system("/usr/bin/python %s/py_compile.py %s" % (pythonPath, " ".join(paths)))
|
|
|
|
def removeByteCompiled(filepath):
|
|
doc = piksemel.parse(filepath)
|
|
for item in doc.tags("File"):
|
|
path = item.getTagData("Path")
|
|
if path.endswith(".py"):
|
|
try:
|
|
# Remove .pyc and .pyo
|
|
os.unlink("/%sc" % path)
|
|
os.unlink("/%so" % path)
|
|
except OSError:
|
|
pass
|
|
|
|
def setupPackage(metapath, filepath):
|
|
byteCompile(filepath)
|
|
|
|
def cleanupPackage(metapath, filepath):
|
|
pass
|
|
|
|
def postCleanupPackage(metapath, filepath):
|
|
removeByteCompiled(filepath)
|