From fbe943ab171243324a3d6ac6a54697b90b5ee7bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Schneider?= Date: Wed, 26 Feb 2014 22:01:47 +0100 Subject: [PATCH] eobuilder-ctl: debug smart cleanning --- eobuilder-ctl | 19 +++++++++++++------ eobuilder.cron | 2 +- eobuilder/cmdline.py | 2 +- eobuilder/settings.py | 2 +- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/eobuilder-ctl b/eobuilder-ctl index b6b5c2f..76b78b2 100755 --- a/eobuilder-ctl +++ b/eobuilder-ctl @@ -27,7 +27,7 @@ def smart_cleaning(files_path): key=lambda x: os.stat(x).st_mtime) for filename in project_files[project]: if nb_versions > settings.MIN_PACKAGE_VERSIONS and \ - os.stat(project).st_mime < now - settings.MIN_AGE * 86400: + os.stat(filename).st_mtime < now - settings.MIN_AGE * 86400: os.remove(filename) nb_versions -= 1 @@ -47,17 +47,24 @@ def clean(method): shutil.rmtree(settings.ORIGIN_PATH) elif method == "locks": shutil.rmtree(settings.LOCK_PATH) - elif method == "old": - # TODO: remove this return - return + elif method == "smart": results_files = [] origin_files = [os.path.join(settings.ORIGIN_PATH, f) \ for f in os.listdir(settings.ORIGIN_PATH)] for root, dirs, files in os.walk(settings.PBUILDER_RESULT): - results_files.extend(files) + for fname in files: + results_files.append(os.path.join(root, fname)) smart_cleaning(results_files) smart_cleaning(origin_files) - + now = time.time() + for root, dirs, files in os.walk(settings.PBUILDER_RESULT): + for fname in files: + fname = os.path.join(root, fname) + if os.stat(fname).st_mtime < now - 365 * 86400: + os.remove(fname) + else: + error("Cleanning: unknow '%s' option" % method) + def init(): print "+ Init EO Builder" diff --git a/eobuilder.cron b/eobuilder.cron index 23e97c9..12255c3 100644 --- a/eobuilder.cron +++ b/eobuilder.cron @@ -1,3 +1,3 @@ #!/bin/sh -su eobuilder -p -c "/usr/local/bin/eobuilder -c old" > /dev/null +su eobuilder -p -c "/usr/local/bin/eobuilder -c smart" > /dev/null diff --git a/eobuilder/cmdline.py b/eobuilder/cmdline.py index c4d6d75..d020750 100644 --- a/eobuilder/cmdline.py +++ b/eobuilder/cmdline.py @@ -44,7 +44,7 @@ def parse_cmdline(): action="extend", type="string", dest="cleanning", metavar='CLEANNING_METHODS', default=[], - help="CLEANNING_METHODS: git, deb, archives, old and / or all") + help="CLEANNING_METHODS: git, deb, archives, smart and / or all") (options, args) = parser.parse_args() diff --git a/eobuilder/settings.py b/eobuilder/settings.py index 446eefe..47ea291 100644 --- a/eobuilder/settings.py +++ b/eobuilder/settings.py @@ -11,7 +11,7 @@ DEBIAN_VERSIONS = { "lenny": "50" } -# Cleaning +# Smart Cleaning # Keep at least X package versions by project MIN_PACKAGE_VERSIONS = 5 # Keep a package version during minum X days