]> git.openstreetmap.org Git - chef.git/blob - cookbooks/tile/templates/default/cleanup-tiles.erb
cd8696ac48e65dcdfdc226009201a5d3e56a07ba
[chef.git] / cookbooks / tile / templates / default / cleanup-tiles.erb
1 #!/usr/bin/perl
2
3 # DO NOT EDIT - This file is being maintained by Chef
4
5 use strict;
6 use warnings;
7
8 use File::Temp qw(tmpnam);
9 use Filesys::Df;
10
11 my $tiledir = shift @ARGV;
12 my $tempfile = tmpnam();
13
14 if (df($tiledir)->{per} > 90)
15 {
16     system("find", $tiledir, "-xdev", "-type", "f", "-name", "*.meta", "-atime", "+45", "-fprintf", $tempfile, "%A@ %p\n");
17
18     open(TILES, "-|", "sort", "-n", $tempfile) || die "Can't open $tempfile: $!";
19
20     while (df($tiledir)->{per} > 80)
21     {
22         for my $n (1..1000)
23         {
24             if (defined(my $line = readline(TILES)))
25             {
26                 chomp $line;
27
28                 my($time,$tile) = split(/ /, $line);
29
30                 unlink($tile) || warn "Can't remove $tile: $!";
31             }
32             else
33             {
34                 goto done;
35             }
36         }
37     }
38
39   done:
40
41     close(TILES);
42 }
43
44 unlink($tempfile);
45
46 warn "Tile expiry finished before threshold reached" if df($tiledir)->{per} > 80;
47
48 exit 0;