Skip to content

Instantly share code, notes, and snippets.

@seungwon0
Created July 16, 2012 04:04
Show Gist options
  • Save seungwon0/3120429 to your computer and use it in GitHub Desktop.
Save seungwon0/3120429 to your computer and use it in GitHub Desktop.
creates a fortune file for hackers
#!/usr/bin/env perl
#
# fortune-hackersays.pl - creates a fortune file for hackers.
#
# Creates a fortune cookie file containing quotes from hackersays.com.
#
# Usage Example:
# $ ./fortune-hackersays.pl
# $ strfile hackersays
# $ fortune hackersays
#
# Copyright (C) 2012 by Seungwon Jeong
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
# <http://www.gnu.org/licenses/>.
use perl5i::2;
use IO::All -utf8;
use YAML::Any;
my $yaml < io 'https://raw.github.com/jarmo/hackersays/master/quotes.yaml';
my $quotes = Load($yaml);
my @cookies = $quotes->map( func($quote) {
my $cookie = sprintf "%s\n", $quote->{':c'}->trim;
if ( exists $quote->{':a'} ) {
$cookie .= sprintf "\n\t- %s\n", $quote->{':a'}->trim;
}
return $cookie->wrap;
} );
@cookies->join("%\n") > io 'hackersays';
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment