summaryrefslogtreecommitdiff
path: root/eg/cgi/RunMeFirst
blob: 018b11b7184972b286dfdcbfbd227c8b7be9a624 (plain)
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
#!/usr/local/bin/perl

# Make a world-writeable directory for saving state.
$ww = 'WORLD_WRITABLE';
unless (-w $ww) {
    $u = umask 0;
    mkdir $ww, 0777;
    umask $u;
}

# Decode the sample image.
for $uu (<*.uu>) {
    unless (open UU, "<$uu") { warn "Can't open $uu: $!\n"; next }
    while (<UU>) {
        chomp;
	if (/^begin\s+\d+\s+(.+)$/) {
	    $bin = $1;
	    last;
	}
    }
    unless (open BIN, "> $bin") { warn "Can't create $bin: $!\n"; next }
    binmode BIN;
    while (<UU>) {
	chomp;
	last if /^end/;
	print BIN unpack "u", $_;
    }
    close BIN;
    close UU;
}

# Create symlinks from *.txt to *.cgi for documentation purposes.
foreach (<*.cgi>) {
    ($target = $_) =~ s/cgi$/txt/i;
    symlink $_, $target unless -e $target;
}