#!/usr/bin/perl # DO NOT EDIT - This file is being maintained by Chef use strict; use warnings; use File::Basename; use File::Temp qw(tmpnam); use Filesys::Df; use LockFile::Simple; my $tiledir = shift @ARGV; my $lockmgr = LockFile::Simple->make(-autoclean => 1, -max => 1, -hold => 0, -warn => 0, -stale => 1); $lockmgr->lock("${tiledir}/cleanup") || exit 0; my $tempfile = tmpnam(); if (df($tiledir)->{per} > 90) { system("find", $tiledir, "-xdev", "-name", "lost+found", "-prune", "-o", "-type", "f", "-name", "*.meta", "-atime", "+10", "-fprintf", $tempfile, "%A@ %p\n"); open(TILES, "-|", "sort", "-n", $tempfile) || die "Can't open $tempfile: $!"; while (df($tiledir)->{per} > 80) { for my $n (1..1000) { if (defined(my $line = readline(TILES))) { chomp $line; my($time,$tile) = split(/ /, $line); unlink($tile) || warn "Can't remove $tile: $!"; for (my $dir = dirname($tile); $dir ne $tiledir; $dir = dirname($dir)) { rmdir($dir); } } else { goto done; } } } done: close(TILES); warn "Tile expiry finished before threshold reached" if df($tiledir)->{per} > 80; } unlink($tempfile); $lockmgr->unlock("${tiledir}/cleanup"); exit 0;