#!@PERL@ -w # -*- perl -*- # @configure_input@ use strict; use DirHandle; @HAVE_PERL_TERMCAP_TRUE@use Term::Cap; use integer; ######################################################################## sub usage () { print "Usage: $0 []\n"; exit 1; } @ARGV == 1 || @ARGV == 2 or usage; $| = 1; print "Removing intermediate files ..." unless $ENV{silent}; ######################################################################## # # Find the junk # my @junk; my %seen; foreach my $tc_gen (@ARGV) { if (!defined $seen{$tc_gen}) { $seen{$tc_gen} = 1; my $dir = new DirHandle $tc_gen; if (defined $dir) { foreach ($dir->read) { push @junk, "$tc_gen/$_" if /\.[chos]$/ || /\.mk$/ || /^stamp-/ || /\.ib$/; } } undef $dir; } } ######################################################################## # # Remove the junk # sub pick_cr () { return undef unless -t STDOUT; return undef if $ENV{silent}; return undef unless defined $ENV{TERM}; return undef if defined $ENV{EMACS}; return undef if $ENV{TERM} eq 'emacs'; return undef if $ENV{TERM} eq 'dumb'; my $cap = undef; @HAVE_PERL_TERMCAP_TRUE@ eval { $cap = (Tgetent Term::Cap { OSPEED => 9600 })->{'_cr'} }; @HAVE_PERL_TERMCAP_TRUE@ $cap = "\r" if (!defined $cap); return $cap; } if (@junk) { my $cr = pick_cr; if (defined $cr) { my $prior = -1; foreach (1 .. @junk) { my $percent = $_ * 100 / @junk; print $cr, "Removing intermediate files ... $percent%" unless $prior == $percent; $prior = $percent; unlink $junk[$_ - 1]; } } else { unlink @junk; } } print "\n" unless $ENV{silent}; exit 0;