aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/scripts/patches.pl
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/scripts/patches.pl')
-rwxr-xr-xlibjava/classpath/scripts/patches.pl164
1 files changed, 0 insertions, 164 deletions
diff --git a/libjava/classpath/scripts/patches.pl b/libjava/classpath/scripts/patches.pl
deleted file mode 100755
index 57f134d..0000000
--- a/libjava/classpath/scripts/patches.pl
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/perl -w
-# Purpose is to move patches from upload directory to
-# public patches directory. Any file not matching the correct
-# pattern is deleted. Any patch file without a README and the
-# file was last modified more than 120 minutes ago is deleted.
-# Any README file without a patch file which was last modified
-# more than 120 minutes ago is deleted.
-#
-# notes to self: as long as this runs as root do not worry
-# about quota problems or disk space
-
-use strict;
-
-my ($upload_dir) = "/home/ftp/classpath/incoming";
-my ($public_dir) = "/home/ftp/classpath/pub/patches";
-my ($user) = "classpath";
-my ($group) = "classpath";
-my ($mode_dir) = "775";
-my ($mode_file) = "664";
-my (@patches) = ();
-
-use vars qw($upload_dir $public_dir @patches $user $group
- $mode_dir $mode_file);
-
-# main
-{
- @patches = &getPatches();
- &movePatches(@patches);
-}
-
-#---------------------------------------------------------------
-# Purpose: To remove files not matching the correct pattern.
-# To remove README files without patches (last modified greater
-# than 2 hours). To remove patches without README files (last
-# modified greater than 2 hours).
-#---------------------------------------------------------------
-sub getPatches
-{
- my (@patches) = ();
- my (@entries) = ();
- my (%maybe) = ();
- my ($entry, $debug, $prefix, $junk, $file, $patch, $readme) = "";
- my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime,
- $mtime, $ctime, $blksize, $blocks) = "";
-
- $debug = 1;
-
- opendir(INCOMING, "$upload_dir") || die "could not open $upload_dir\n";
- @entries = grep( !/^\.\S+/, readdir(INCOMING)); # no .*
- closedir(INCOMING);
- foreach $entry (sort @entries)
- {
- if (($entry eq ".") || ($entry eq "..")) { next; }
- if (-d "$upload_dir/$entry")
- {
- print "Directory: $upload_dir/$entry/\n";
- }
- elsif (-e "$upload_dir/$entry")
- {
- if ($entry eq ".message") { next; }
- if ($entry eq "README") { next; }
- if ($entry !~ /^\w+-\d\d\d\d\d\d-\d+\.patch\.(gz|README)$/)
- {
- print "REGEX FAILED: $entry\n";
- unlink("$upload_dir/$entry");
- }
- else
- {
- ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,
- $ctime,$blksize,$blocks) = stat("$upload_dir/$entry");
- if ($size > 512000)
- {
- print "LARGE PATCH: $entry\n";
- unlink("$upload_dir/$entry");
- }
- else
- {
- ($prefix,$junk) = split(/(\.gz|\.README)/, $entry, 2);
- $maybe{$prefix} += 1;
- }
- }
- }
- }
-
- foreach $entry (keys(%maybe))
- {
- if ($maybe{$entry} == 2)
- {
- $patch = "$entry.gz";
- $readme = "$entry.README";
-
- ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,
- $ctime,$blksize,$blocks) = stat($patch);
- if (time-$mtime > 900)
- {
- ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,
- $ctime,$blksize,$blocks) = stat($readme);
- if (time-$mtime > 900)
- {
- $patches[$#patches+1] = $entry;
- }
- }
- }
- else
- {
- if (-e "$upload_dir/$entry.gz")
- {
- unlink("$upload_dir/$entry.gz");
- print "STALE PATCH: $entry.gz\n";
- }
- elsif (-e "$upload_dir/$entry.README")
- {
- unlink("$upload_dir/$entry.README");
- print "STALE README: $entry.README\n";
- }
- }
- }
- return (@patches);
-}
-
-#---------------------------------------------------------------
-# Purpose: To move the patches to the proper directory and set
-# the permissions correctly.
-#---------------------------------------------------------------
-sub movePatches
-{
- my (@patches) = @_;
- my ($patch) = "";
- my ($fail) = 0;
-
- if (!(-d "$public_dir"))
- {
- system("mkdir -p $public_dir");
- system("chown $user.$group $public_dir");
- system("chmod $mode_dir $public_dir");
- }
- foreach $patch (@patches)
- {
- if (-e "$public_dir/$patch.gz")
- {
- print "Patch exists: $public_dir/$patch.gz\n";
- $fail = 1;
- }
- if (-e "$public_dir/$patch.README")
- {
- print "README exists: $public_dir/$patch.README\n";
- $fail = 1;
- }
- if ($fail == 0)
- {
- system("mv $upload_dir/$patch.gz $public_dir/$patch.gz");
- system("mv $upload_dir/$patch.README $public_dir/$patch.README");
- system("chown $user.$group $public_dir/*");
- system("chmod $mode_file $public_dir/*");
- open(MAIL, "|mail -s \"Classpath: $patch uploaded\" core\@classpath.org") || die "could not open mail\n";
- print MAIL "GNU Classpath FTP Maintenance\n";
- print MAIL "\n";
- print MAIL "Added Files:\n";
- print MAIL "ftp://ftp.classpath.org/pub/patches/$patch.gz\n";
- print MAIL "ftp://ftp.classpath.org/pub/patches/$patch.README\n\n";
- close(MAIL);
- }
- }
-}