summaryrefslogtreecommitdiff
path: root/lib/CGI/eg/RunMeFirst
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CGI/eg/RunMeFirst')
-rwxr-xr-xlib/CGI/eg/RunMeFirst36
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/CGI/eg/RunMeFirst b/lib/CGI/eg/RunMeFirst
new file mode 100755
index 0000000000..018b11b718
--- /dev/null
+++ b/lib/CGI/eg/RunMeFirst
@@ -0,0 +1,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;
+}