66 lines
1.6 KiB
Python
Executable File
66 lines
1.6 KiB
Python
Executable File
#!/usr/bin/python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import os
|
|
import sys
|
|
import glob
|
|
import string
|
|
import pisi.util as util
|
|
from pisi.version import Version
|
|
|
|
def findUnneededFiles():
|
|
listdir = map(lambda x: os.path.basename(x).split(".pisi")[0], glob.glob("/var/cache/pisi/packages/*.pisi"))
|
|
listdir.sort()
|
|
|
|
dict = {}
|
|
for f in listdir:
|
|
try:
|
|
name, version = util.parse_package_name(f)
|
|
if dict.has_key(name):
|
|
if Version(dict[name]) < Version(version):
|
|
dict[name] = version
|
|
else:
|
|
if version:
|
|
dict[name] = version
|
|
|
|
except:
|
|
pass
|
|
|
|
for f in dict:
|
|
listdir.remove("%s-%s" % (f, dict[f]))
|
|
|
|
return listdir
|
|
|
|
def usage(msg):
|
|
print """
|
|
Error: %s
|
|
|
|
Usage:
|
|
cleanCache --dry-run (Shows unneeded files)
|
|
cleanCache --clean (Removes unneeded files)
|
|
""" % msg
|
|
|
|
sys.exit(1)
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
sys.argv[1]
|
|
except IndexError:
|
|
usage("Unsufficient arguments...")
|
|
|
|
root = "/var/cache/pisi/packages"
|
|
|
|
if sys.argv[1] == "--dry-run":
|
|
for i in findUnneededFiles():
|
|
if os.path.exists("%s/%s.pisi" % (root, i)):
|
|
print "%s.pisi" % i
|
|
elif sys.argv[1] == "--clean":
|
|
for i in findUnneededFiles():
|
|
if os.path.exists("%s/%s.pisi" % (root, i)):
|
|
try:
|
|
os.remove("%s/%s.pisi" % (root, i))
|
|
except OSError:
|
|
usage("Permission denied...")
|
|
else:
|
|
usage("No command given...")
|