summaryrefslogtreecommitdiffstats
path: root/admin/cvs-clean.pl
diff options
context:
space:
mode:
Diffstat (limited to 'admin/cvs-clean.pl')
m---------admin0
-rw-r--r--admin/cvs-clean.pl87
2 files changed, 0 insertions, 87 deletions
diff --git a/admin b/admin
new file mode 160000
+Subproject 8c7e0d40de084fe5d54e173918756639e0d4d63
diff --git a/admin/cvs-clean.pl b/admin/cvs-clean.pl
deleted file mode 100644
index 35d48e9..0000000
--- a/admin/cvs-clean.pl
+++ /dev/null
@@ -1,87 +0,0 @@
-#! /usr/bin/perl
-
-#
-# This script recursively (beginning with the current directory)
-# wipes out everything not registered in CVS.
-#
-# written by Oswald Buddenhagen <ossi@kde.org>
-# inspired by the "old" cvs-clean target from Makefile.common
-#
-# This file is free software in terms of the BSD license. That means
-# that you can do anything with it except removing this license or
-# the above copyright notice. There is NO WARRANTY of any kind.
-#
-
-sub rmrf()
-{
- my $fn = shift;
- lstat ($fn);
- if (-d _) {
- if (opendir (DIR, $fn)) {
- for my $efn (grep (!/^\.\.?$/, readdir (DIR))) {
- &rmrf ($fn."/".$efn);
- }
- closedir (DIR);
- rmdir ($fn);
- }
- } else {
- unlink ($fn);
- }
-}
-
-sub newfiles()
-{
- my ($indir, $incvs) = @_;
- for my $n (keys (%$incvs)) { delete $$indir{$n} }
- return sort (keys (%$indir));
-}
-
-sub cvsclean()
-{
- my $dir = shift;
- my (%dirsdir, %filesdir, %dirscvs, %filescvs);
- my $dnam = $dir ? $dir : ".";
- if (!opendir (DIR, $dnam)) {
- print STDERR "Cannot enter \"".$dnam."\".\n";
- return;
- }
- for my $fn (grep (!/^\.\.?$/, readdir (DIR))) {
- if (-d $dir.$fn) {
- $fn eq "CVS" or $dirsdir{$fn} = 1;
- } else {
- $filesdir{$fn} = 1;
- }
- }
- closedir (DIR);
- if (!open (FILE, "<".$dir."CVS/Entries")) {
- print STDERR "No CVS information in \"".$dnam."\".\n";
- return;
- }
- while (<FILE>) {
- m%^D/([^/]+)/.*$% and $dirscvs{$1} = 1;
- m%^/([^/]+)/.*$% and $filescvs{$1} = 1;
- }
- close (FILE);
- if (open (FILE, "<".$dir."CVS/Entries.Log")) {
- while (<FILE>) {
- m%^A D/([^/]+)/.*$% and $dirscvs{$1} = 1;
- m%^A /([^/]+)/.*$% and $filescvs{$1} = 1;
- m%^R D/([^/]+)/.*$% and delete $dirscvs{$1};
- m%^R /([^/]+)/.*$% and delete $filescvs{$1};
- }
- close (FILE);
- }
- for my $fn (&newfiles (\%filesdir, \%filescvs)) {
- print ("F ".$dir.$fn."\n");
- &rmrf ($dir.$fn);
- }
- for my $fn (&newfiles (\%dirsdir, \%dirscvs)) {
- print ("D ".$dir.$fn."\n");
- &rmrf ($dir.$fn);
- }
- for my $fn (sort (keys (%dirscvs))) {
- &cvsclean ($dir.$fn."/");
- }
-}
-
-&cvsclean ("");