#!/usr/local/bin/perl -w

# 
# mksnap
#
# make a Distutils snapshot -- should go away once we have a 'dist'
# command!
#
# $Id$
#

use strict;
use File::Find;
use File::Copy ('move');
use POSIX ('strftime');

my $tar = '/depot/gnu/plat/bin/gnutar';    # MUST be gnutar!
#my $tar = '/bin/tar';
die "don't know where to find gnutar" unless -x $tar;

# gather up all filenames in the source directories (distutils, test, ...?)
my @files;
sub finder
{
   $File::Find::prune = 1, return if /^(build|dd|www|CVS)$/;
   return if -d or /\.py[co]$/ or /\~$/;
   push @files, $File::Find::name;
}

chdir "..";
find (\&finder, 'distutils');

# and make a "snapshot" tarball named after today's date
my $datestamp = strftime ('%Y%m%d', localtime time);
my $snapname = "distutils-$datestamp.tar.gz";
print "creating $snapname\n";
open (TAR, "|$tar -cz -T - -f $snapname")
   || die "couldn't open pipe to $tar: $!\n";
print TAR join ("\n", @files) . "\n";
close (TAR);
die "$tar failed" unless $? == 0;

# and move the snapshot into the distutils web directory
print "moving $snapname\n";
move ($snapname, "distutils/www")
   || die "couldn't move $snapname to distutils/www: $!\n";