From c13ce26768e760908078244e251c7b3c19b26a8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Andr=C3=A9e?= Date: Tue, 21 Aug 2012 19:35:55 +0200 Subject: [PATCH] automatic cache clean --- configure | 1 - ponysay | 26 +++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 6cde35b4..6e1c9632 100755 --- a/configure +++ b/configure @@ -239,7 +239,6 @@ function makeMakefile() echo echo 'install-cache:' - echo -en '\t' ; echo 'if [ -d "/var/cache/ponysay" ]; then rm -r "/var/cache/ponysay"; fi' echo -en '\t' ; echo 'mkdir -p "$(DESTDIR)/var/cache/ponysay/"' echo -en '\t' ; echo 'chmod 777 "$(DESTDIR)/var/cache/ponysay/"' echo diff --git a/ponysay b/ponysay index fedaab6b..7eb6dd5c 100755 --- a/ponysay +++ b/ponysay @@ -24,7 +24,7 @@ from subprocess import Popen, PIPE ''' The version of ponysay ''' -VERSION = '2.2' +VERSION = '2.3' ''' @@ -533,6 +533,8 @@ class Ponysay(): if not linuxvt: return pony + KMS_VERSION = '1' + env_kms = os.environ['PONYSAY_KMS_PALETTE'] if 'PONYSAY_KMS_PALETTE' in os.environ else None if env_kms is None: env_kms = '' @@ -554,6 +556,28 @@ class Ponysay(): if not os.path.isdir(cachedir): os.makedirs(cachedir) + newversion = False + if not os.path.isfile(cachedir + '/.version'): + newversion = True + else: + cachev = None + try: + cachev = open(cachedir + '/.version', 'r') + if ''.join(cachev.readlines()) == KMS_VERSION: + newversion = True + finally: + if cachev is not None: + cachev.close() + if newversion: + for cached in os.listdir(ponydir): + shutil.rmtree(cachedir + '/' + cached, False) + try: + cachev = open(cachedir + '/.version', 'w+') + cachev.write(KMS_VERSION) + finally: + if cachev is not None: + cachev.close() + kmsponies = cachedir + '/kmsponies/' + palettefile kmspony = (kmsponies + pony).replace('//', '/')