#!/opt/bin/perl ###################################################################### # # # spools - spool slave # # # # usage: spools [ [ ] ] # # # # Tool called by spoold (spool daemon) for storing STDIN to the # # given directory, thereby resolving possible filename conflicts. # # # # The filename given in the environment variable $ORIGNAME is pre- # # served whenever possible. # # # # Written 28.08.95 by Steffen Beyer # # Copyright (C) 1995 by sd&m GmbH & Co. KG # # # ###################################################################### $version = 'Version 1.0'; $self = $0; if ($self =~ m!/([^/]+)$!) { $self = $1; } $directory = "."; $defaultname = "${self}_00000"; $defaultextension = ""; ###################################################################### unless (@ARGV) { die "$self error: no arguments given!\n"; } $directory = shift; if ($directory =~ m!^.+/$!) # cut off last '/' (but not if root directory!) { chop($directory); } unless (-d $directory && -w $directory) { die "$self error: '$directory' is not a writable directory!\n"; } if (@ARGV) { $defaultname = shift; } if (@ARGV) { $defaultextension = shift; } if ($directory =~ m!/$!) # if root directory... { chop($directory); } $filename = $ENV{'ORIGNAME'}; if ($filename ne "") { $filename = "$directory/$filename"; } else { $filename = "$directory/$defaultname"; if ($defaultextension ne "") { $filename .= ".$defaultextension"; } $defaultname++; } while (1) { if (-f $filename || -d $filename) { $filename = "$directory/$defaultname"; if ($defaultextension ne "") { $filename .= ".$defaultextension"; } $defaultname++; next; } else { unless (open(FILE, ">$filename")) { die "$self error: can't write '$filename': $!\n"; } while () { print FILE $_; } close(FILE); last; } }