From 94a7972fca14878c8bc86fd469d3c12c28807abb Mon Sep 17 00:00:00 2001 From: Peter Marquardt Date: Thu, 1 Dec 2022 14:29:50 +0100 Subject: [PATCH] names. --- chicken.1 | 47 ++++++++++++++++++++++++++++++++++++++++++++++- chicken.pl | 29 +++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 1 deletion(-) diff --git a/chicken.1 b/chicken.1 index 18b30a3..1a2876f 100644 --- a/chicken.1 +++ b/chicken.1 @@ -29,7 +29,7 @@ .SH NAME chicken \- Pukaaak honk bwwwaaaaaaaaaak cluck? Pukaaak. .SH SYNOPSIS -.BR chicken " [" \-nw " "numwords ] " "[ \-en " " enum "]" +.BR chicken " [" "\-nw numwords" "] [" "\-en enum" "] [" \-namethischicken "] [" \-printchickenversion "]" .SH DESCRIPTION Bok .B chicken @@ -42,6 +42,13 @@ Honk puk cluckity puk cluckity cluck puk Honk cluck-a-buh-gawk Honk Bwak cluckit .TP .B \-en Cock-a-doodle-doo Cluck-cluck-cluck bwak cluck Bwok... Waaak puk pukaaak cluck-cluck-cluck Bwak Bwok cock-a-doodle-doo Bwok Cock-a-doodle-doo bok. +.TP +.B \-namethischicken +Bok-bok! Cluck-a-buh-gawk Bwak-bwak? Bwwwaaaaak Honk-honk. Honk Waaaak bwok-bwok Pukak-pukaaaak pukaak-pukak honk gobble Waaaaaak-waaaaak cluck-a-buh-gawk-cluck-a-buh-gawk-cluck-a-buh-gawk pukaaaaaak bok-bok bwwwaak... Honk Bwak waak-waaaaaaak Gobble Cluck-a-buh-gawk-cluck-a-buh-gawk Cluck cluck-a-buh-gawk... Cock-a-dooodle-dooooooo puk. Bwak-bwak puk cluck Gobble bwok? Bwok? Cluckity-cluckity... Cluckity-cluckity gobble-gobble gobble-gobble-gobble waaak Wak-waaaaaaak-waaaaaaak cluck-a-buh-gawk-cluck-a-buh-gawk Gobble! +.TP +.B \-printchickenversion +6.0 + .SH FILES Cluckity: cluck-a-buh-gawk puk waaak Cock-a-doodle-doo... Honk Cluckity Bok cluck-cluck-cluck cluck-a-buh-gawk gobble-gobble bwak. .SH BUGS @@ -53,6 +60,44 @@ Bok. .SH HISTORY Cluckity? Cock-a-doodle-doo bwwwaaaaaaaaaak... .PP +.SH AUTHORS +Cluckity Bwak, +Bok Bwok-Bok, +Gobble Bok-Bwwwaak, +Bwak Pukaak-Waak, +Gobble Pukaak-Bwak, +Bwak Honk-Bok, +Honk Cluckity-Bwwwaak, +Cluckity Bok-Bwok, +Bwak Waak-Cluck, +Bwak Bwak-Waak, +Gobble Pukaak-Bwwwaak, +Bwok Bwok-Puk, +Cluck Honk-Bwwwaak, +Cluckity Gobble-Bwwwaak, +Bwak Puk-Cluckity, +Cluck Bwwwaak-Puk, +Honk Cluckity, +Bwwwaak Pukaak-Cluck, +Cluckity Bwwwaak-Bwak, +Puk Pukaak-Puk, +Pukaak Bwak-Puk, +Bok Waak-Cluckity, +Bwwwaak Cluck-Bwak, +Bok Waak-Honk, +Gobble Honk-Cluck, +Cluckity Honk-Cluckity, +Gobble Pukaak-Bwak, +Honk Bok-Cluck, +Bok Bok-Honk, +Bok Waak, +Gobble Bwok-Cluck, +Puk Honk-Bwak, +Honk Gobble-Bok, +Puk Gobble-Pukaak, +Cluckity Gobble-Waak, +Cluckity Bwok-Gobble +.PP .SH SEE ALSO .BR mimimi "(1), " yeehaw "(1), " snooze "(1), " .BR yawn (1) diff --git a/chicken.pl b/chicken.pl index ebd8fdc..8dbc485 100755 --- a/chicken.pl +++ b/chicken.pl @@ -11,6 +11,7 @@ sub USAGE { --numberofwords -nw : number of words, ranged from n to m --enumerate -en : create a list of arguments + --namethischicken : tell the chickens name --printchickenversion : print out "$VERSION" eof @@ -24,6 +25,7 @@ sub USAGE { my $opt_numberOfWordsRange = '15-75'; my $opt_numberOfWordsRangeStart = 0; my $numberOfWords = 0; +my $opt_namethischicken = 0; my ( $f, $t ) = ( 0, 0 ); my $opt_enumerate = 0; @@ -31,6 +33,7 @@ sub USAGE { GetOptions( 'numberofwords|nw=s' => \$opt_numberOfWordsRange, 'enumerate|en=i' => \$opt_enumerate, + 'namethischicken' => \$opt_namethischicken, 'printchickenversion' => \$opt_version, ) or USAGE; @@ -43,6 +46,32 @@ sub USAGE { my @PUNCTUATIONS = ( ".", "...", "!", "?" ); +if ($opt_namethischicken) { + + my %ChickenPopulation; + my @ChickenNames = grep { !/-/ } @WORDS; + + for my $pn (@ChickenNames) { + for my $ln (@ChickenNames) { + $ChickenPopulation{ ucfirst($pn) . ' ' . ucfirst($ln) } = $pn eq $ln ? 1 : 2; + } + } + + # "Waak Bok" could also be married to "Cluck" which would end up in "Waak Bok-Cluck" + for my $pn (@ChickenNames) { + for ( keys %ChickenPopulation ) { + push @_, ucfirst($pn) . ' ' . $_ unless $ChickenPopulation{$_} == 1; + } + } + + for (@_) { s/( \w+) /$1-/; $ChickenPopulation{$_} = 3 } + my @CN = keys %ChickenPopulation; + + my $chickensname = $CN[ rand( scalar @CN ) ]; + print "$chickensname\n"; + exit; +} + if ( $opt_numberOfWordsRange =~ m/^\d+$/ ) { $opt_numberOfWords = $opt_numberOfWordsRange; }