File: archivefaq.pl

package info (click to toggle)
leafnode 1.12.0-4
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 2,488 kB
  • sloc: ansic: 10,961; sh: 1,738; xml: 627; makefile: 258; perl: 84; sed: 4
file content (39 lines) | stat: -rwxr-xr-x 777 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/perl

# trailing slash!
$archive = "/var/spool/news/faq.archive/";

chdir("/var/spool/news/news/answers/") || die "can't chdir to FAQ directory";

opendir(FAQ, ".") || die "can't open FAQ directory";
@faqs = grep(/^\d+$/, readdir(FAQ));
closedir(FAQ);

undef $/;
foreach $artno ( @faqs ) {
    if ( open(I, "< $artno") ) {
	$_ = <I>;
	close(I);
	if ( $_ =~ /\nArchive-name: (\S+)\n/ ) {
	    $name = $archive . $1;
	    $dir = $name;
	    &mkpdir( $name );
	    unlink( $artno ) unless ( link( $artno, $name ) );
	}
    }
}
	
#
# make parent directory of argument
#
sub mkpdir {
    local( $dir ) = @_;

    $dir =~ s-/[^/]+$--;
    unlink $dir if ( -e $dir && ! -d _ );
    unless ( -d _ ) {
	&mkpdir( $dir );
	mkdir $dir, 0775;
	print "made ", $dir, "\n";
    }
}