use IO::File;
-my $sigfile = new IO::File "> /home/don/.signature";
-my $templatefile = new IO::File "/home/don/signature_stuff/sigtemplate.txt";
-my $quotesfile = new IO::File "/home/don/signature_stuff/quote.txt";
+use User;
-my $template = '';
+my ($temp_file,$quote_file) = @ARGV;
+$temp_file ||= User->Home."/lib/signature_stuff/sigtemplate.txt";
+$quote_file ||= User->Home."/lib/signature_stuff/quote.txt";
-while (<$templatefile>) {
- $template.=$_;
-}
+# my $sigfile = new IO::File User->Home."/.signature", 'w' or die "Unable to open ~/.signature for writing; $!";
+my $templatefile = new IO::File $temp_file, 'r' or die "Unable to open $temp_file $!";
-undef $templatefile;
+local $/;
+my $template =<$templatefile>;
-my $quotes = '';
+undef $templatefile;
-while (<$quotesfile>) {
- $quotes.=$_;
+my $quote;
+my $fortune;
+if (-e $quote_file.'.dat' and open($fortune,'-|','fortune',$quote_file)) {
+ local $/;
+ $quote = <$fortune>;
+ close($fortune);
+ $quote =~ s/\n$//;
+}
+else {
+ my $quotes = '';
+ my $quotesfile = new IO::File $quote_file,'r' or die "Unable to open $quote_file $!";
+ local $/;
+ $quotes = <$quotesfile>;
+ undef $quotesfile;
+ my @quotes = split /\n*\%\n*/s, $quotes;
+ undef $quotes;
+ my $quote = $quotes[rand(@quotes)];
}
-undef $quotesfile;
-
-my @quotes = split /\n*\%\n*/s, $quotes;
-undef $quotes;
-
-my $quote = $quotes[rand($#quotes+1)];
$template =~ s/\[\%\s*quote\s*\%\]/$quote/;
-print {$sigfile} $template;
-
-undef $sigfile;
+print $template;