X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=grml-tips;h=dfa7bd94f457b74762fa5a4d780c1d28ef910e84;hb=2a19047618682f4498d94db41dd045f5d2626315;hp=fc9fd39f7b27b01d733b8a0b67b3011a4d68f96d;hpb=2a869a51f5eb5fed53a0bf6b745372639af0f13b;p=grml-tips.git diff --git a/grml-tips b/grml-tips index fc9fd39..dfa7bd9 100755 --- a/grml-tips +++ b/grml-tips @@ -10,6 +10,7 @@ use strict; use Pod::Usage; +use feature 'say'; use Term::ReadKey; use Time::HiRes; use LWP::UserAgent; @@ -79,33 +80,43 @@ if ($pattern eq '') { } my @tips; -my $fh; -if (! open ($fh, '<', "$grml_tips")) { - print "Error: $grml_tips not found.\nExiting."; +if (! open (my $fh, '<', "$grml_tips")) { + say STDERR "Error: File \"$grml_tips\" not found."; + say STDERR "Exiting."; exit -1; -} +} else { + my $tip = ''; -my $tip = ''; -my $tip_flag = 0; - -while (my $line = <$fh>) { - if ($line !~ /^-- $/) { - $tip .= $line; - } else { - if ( "$tip" =~ /$pattern/mi ) { - $tip .= $line; - print "$tip"; - $tip = ''; - $tip_flag = 1; - } else { - $tip = ''; + my $tips_found = 0; + while (my $line = <$fh>) { + if ($line !~ /^-- $/) { + $tip .= $line; + } else { + $tips_found++; + if ( $tip =~ /$pattern/mi ) { + #$tip .= $line; + + my $header = "Grml Tip Number $tips_found\n"; + my $line = "-" x (length($header) -1 ) . "\n\n"; + + push @tips, $header . $line . $tip . "\n"; + $tip = ''; + } else { + $tip = ''; + } + } } - } + close($fh); } -close($fh); -if (!$tip_flag) { - print "Sorry, could not find a tip for '$pattern'. :-(\n\n", +if (@tips) { + if (! open (my $fh, '|-', 'less -FRX') ) { + say @tips; + } else { + say $fh @tips; + } +}else { + say "Sorry, could not find a tip for '$pattern'. :-(\n\n", "Do you want to submit the keyword '$pattern' to grml's keyword database?\n", "The grml team will write tips for the most requested and useful keywords.\n", "To use and contribute to this feature you'll need a working networking connection.\n", @@ -145,12 +156,12 @@ if (!$tip_flag) { if ($res->is_success) { my $content = $res->decoded_content; if ($content =~ /Submission received/) { - print "Keyword '$pattern' has been submitted to grml's keyword database.\nThanks.\n"; + say "Keyword '$pattern' has been submitted to grml's keyword database.\nThanks."; } else { - print "Your pattern could not be submitted.\n", + say "Your pattern could not be submitted.\n", "Please file a bug against grml-tips at ", "http://bts.grml.org/\n", - "Thanks!\n"; + "Thanks!"; } } else { print "Could not submitt '$pattern': " . $res->status_line . "\n";