]> git.donarmstrong.com Git - lib.git/blobdiff - signature_stuff/pick_a_quote.pl
* update quotes with prisoner quote
[lib.git] / signature_stuff / pick_a_quote.pl
index 1f1ab09ff17248cf817bef3cf53dd81e3a14696c..83f319ad6cef1a9ab0b4b6f0cb83450c23384a37 100755 (executable)
@@ -5,30 +5,39 @@ use strict;
 
 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/;