Mercurial > bins
diff tools/bins_cleanupgallery @ 0:a84c32f131df 1.1.29
Import vendor version
author | Peter Gervai <grin@grin.hu> |
---|---|
date | Wed, 15 Oct 2008 23:28:56 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/bins_cleanupgallery Wed Oct 15 23:28:56 2008 +0200 @@ -0,0 +1,107 @@ +#!/usr/bin/perl +# +# CleanupGallery v0.1 for BINS +# Copyright (C) 2003 by Jochen Schaeuble <psionic@psionic.de> +# +# $Id: bins_cleanupgallery,v 1.3 2003/04/08 18:29:46 jerome Exp $ +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +use File::Glob ':glob'; + +@knownImageExtentions = ("jpg", "jpeg", "gif", "png", "tiff", + "bmp", "tga", "ps", "eps", "fit", "pcx", + "miff", "pix", "pnm", "rgb", "im1", "xcf", + "xwd", "xpm", "avs", "dcm", "dcx", "dib", + "dps", "dpx", "epdf", "epi", "ept", "fpx", + "icb", "mat", "mtv", "pbm", "pcd", "pct", + "pdb", "ppm", "ptif", "pwp", "ras", "thm", + ); + +$imageExts = join('|', @knownImageExtentions); + +@webFormats = ("jpg", "jpeg", "gif", "png"); +$webExts = join('|', @webFormats); + + +sub ProcessDir +{ + local *DIR; + (local $curdir, local $dstdir, local $srcdir) = @_; + + opendir(DIR, "$dstdir/$curdir"); + while ($file = readdir(DIR)) { + $file = "$curdir/$file"; + + if (-d "$dstdir/$file" && $file !~ m/\.\.?$/ && $file !~ m/static\.\w*$/) { + if (-d "$srcdir/$file") { + # Directory exists in src and dest, process it + &ProcessDir($file, $dstdir, $srcdir); + } else { + # Directory only available in dest remove it + print "## Removing dir: $dstdir/$file\n"; + `rm -Ri \"$dstdir/$file\"`; + } + } elsif ((-f "$dstdir/$file" || -l "$dstdir/$file") && + $file =~ m/.*\.($webExts)$/i) { + + my @srcfiles = bsd_glob("$srcdir/$curdir/*", + GLOB_NOCASE | + GLOB_QUOTE | + GLOB_TILDE); + $filefound = 0; + FILESEARCH: + foreach $curfile (@srcfiles) { + # remove trailing .xml + if ($curfile =~ m/.*\.xml$/i) { + $curfile =~ s/(.*)\.xml$/$1/i; + } + + # remove file extension + $curfile =~ s/.*\/([^\/]*)\.($imageExts)$/$1/i; + if (($curfile ne "") && ($file =~ m/$curfile.*\.($webExts)$/i)) { + $filefound = 1; + last FILESEARCH; + } + } + if ($filefound == 0) { + $file =~ s/(.*)_\w+\.($webExts)$/$1/i; + print "## Removing file: $dstdir/$file*\n"; + `rm -v \"$dstdir/$file\"*`; + } + } + } + closedir(DIR) +} + +sub usage +{ + print "CleanupGallery v0.1 (c) 2003 by Jochen Schaeuble <psionic\@psionic.de\n"; + print "\n"; + print "This is free software with ABSOLUTELY NO WARRANTY.\n"; + print "See COPYING file for details.\n\n"; + print "Usage:\n\n"; + print "cleanupgallery <Gallery Source Directory> <Destination Directory>\n"; + print "\n"; + exit(0); +} + +if ($#ARGV != 1 || !-d $ARGV[0] || !-d $ARGV[1]) { + &usage; +} +($srcdir, $dstdir) = @ARGV; + +ProcessDir("", $dstdir, $srcdir);