Stories
Slash Boxes
Comments

SoylentNews is people

The Fine print: The following are owned by whoever posted them. We are not responsible for them in any way.

Journal by cafebabe

Before pictures of cats were popular on the Internet, we had text cows:-

$ fortune | cowsay
 ----------------------------------
| What's the major use of cowhide? |
|                                  |
| Holding cows together.           |
 ----------------------------------
     \
      \   ^__^
       \  (oo)\_______
          (__)\       )\/\
              ||----w |
              ||     ||

And now the popular cowsay utility has been cow-patched to handle multi-line input correctly, especially if it contains UTF-8. Here's the archive with a SHA1 of d3cc231704eb8575941478be3ebbc19fb6b0f5c4:-

begin 644 cowsay-3.03c.tar.gz
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
M(EA@>EVR^)N&LD*HT*B<JTDN#>?S#^'XWBC?\O:?X?#/]7*DG\?ZSX'YYZ
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
M_OUD/D61]'_4:<5)__.%?(C^EY+ZC['R_]W;X:U+OC(1(O@'V7U,_S&0+(
MM\XWCTV_VVS'F@3,[Q.ONM[\%1PKLK8>G@0K]&&N2:DI2!=/0CA8LWUK=2&I
MH+!+I85=$JI3&-2A^/A<2W<`NA:(3R*ZV1V'?0+4?2/*HB_&X&DE&>>MDI:Z
M(9EW9::#@M373SD9K)S`-/T6UM<THD^4T8U`>>F9*RGN$L:TJ]>T1\&'A>5+
MY'C&/_:6A(H]^R6JB7C)+7A-]?0NS.G$@K<*3835`NR$$96C)SP=#`&%'>8O
M,%D);9Y-`YPW)E%>XVDP.X*R#,]Z$SP%8+5J3R_?Q=::_B;(>Y<$U?TP]/]+
MW/&_A:5_Y9:8U)^'P'^(_RTF^7]BE?^/X2-]:J)^TQW<#E_TK:%[/K*'[4YK
MV&[8G7:/OA;NX,+N=_Y8I+!PWO,0#7$=UU>\D64E.SK&2LHMP$#2UTXD:$]Q
M2=?!=3&"H2!SA>$I(\%"?P[^QV=G#^;Y<3?XK^1SX?B?!/[CA'](_4N!F:?]
M0.<4ZM%IH]/AZ4"LGG7I#GK1,0`N100#IW7;FJKW7T#^H(6GQKTR#BF1@6$[
M'3M"B!GTLH^G4B82*B;A<ZO.Y38`;7:XJ+SJ%Z:YA7DL7QHATX%8I&`?TWL=
MRCVUSR\IQ??^5H2EP7__HN_TQ\U.^]0!$\#HRR@6_X\\S_\)1#^7*PO[7^+_
M$<O&0&-M<VO['=K;VD-[AVMOMM?1Z\T3M/9F=_TUZS8^M@;#MMM;1@6[8A<,
MH_M^_=WJUW<'BZ]*JZNKFYNK;]N=]=,O;]YN__[VW?'E)[?UZG.SM;/5>^6^
MWLOM]%]OM#Y_K51^7^MLW.PMGHV-E]<?UUY=W;[;'A\6W<'KUE('-XZW]W_]
M<-K_//AR=MH=?/[\]6:\EF]\+/WZL32\^;!T_>3P^/KZR<E>*;]W9N3[QR?'
M[UJ=XU?=S5SK]<'Y:>_JZF7WY,/.VO%>8^_=AYWBH/^I_VEW\ZAX<'XQ&%RV
M?G_?K=S@RO;.ZNKAOC%:ZQ\V"^7R]F;^NMG;N?YTL/KKV=:3<>MP;=PLG(Z;
MW8^YO<'[LX_0=K#VCHZ];18.+_9>[8]@WV@6/JXVNT]Z;[KESME&96=UYW!C
M;7^UT-Q8+;^L]->;@PWL7ERMK1[L?EK%3XY')P?]T[W/_7:E\/;#YJ>.T5F\
M^9@?7H\ZAYV]Z]=7&YM++]>>-&]Z;YLO\R\OMBX_M/"K$O[U]XUQ(=<MM[:^
MO#TN_[K?7GJU=WST^?,.-M8'AT=OOVY];%[D=]:N+BX7SYZ\O]Z\O>GNYSZ7
MCEI?&^WSHWQOO?GE*K<U.,KO?=ZYW6H6K[XL70^V7^9?=XTOH\K'FR\?+LYW
MOG[>;KMK.R^;I<WVQFWCS?O>M.N&RWZ??_?Q_4%YW?ATO#/X]+]VZ]`(0!``
MH&AG%2M$F]`@Z'E,8",0'=\[!S`9WYOAA]_O<1VI[.5<PMIGC>&-)K?MHRCC
3!0````````#PDP<PKBE*`!@!````
`
end

And here are some example uses:-

$ cowsay -f frog Hey, man. This lillipad is `df | perl -e 'while(defined($line=<STDIN>)){@field=split(/[ \t\n\r]+/,$line);if((index($ENV{'PWD'},$field[5])==0)&&(length($mount)<length($field[5]))){$mount=$field[5];$avail=$field[4]}}print $avail,"\n"'` full. Ribbit.
 ----------------------------------------------
| Hey, man. This lillipad is 99% full. Ribbit. |
 ----------------------------------------------
     \
      \
          oO)-.                       .-(Oo
         /__  _\                     /_  __\
         \  \(  |     ()~()         |  )/  /
          \__|\ |    (-___-)        | /|__/
          '  '--'    ==`-'==        '--'  '

If you're particularly inclined, you can chain/nest instances of cowsay:-

$ ls -l / | cowsay | cowsay | cowthink
 ----------------------------------------------------------------
(  ------------------------------------------------------------  )
( |  --------------------------------------------------------  | )
( | | total 84                                               | | )
( | | drwxr-xr-x   2 root root  4096 May 10 23:11 bin        | | )
( | | drwxr-xr-x   3 root root 16384 Jan  1  1970 boot       | | )
( | | drwxr-xr-x  12 root root  3240 May 28 11:17 dev        | | )
( | | drwxr-xr-x 111 root root  4096 May 28 23:31 etc        | | )
( | | drwxr-xr-x   3 root root  4096 May 10 22:57 home       | | )
( | | drwxr-xr-x  19 root root  4096 May 10 23:12 lib        | | )
( | | drwx------   2 root root 16384 May 10 23:38 lost+found | | )
( | | drwxr-xr-x   2 root root  4096 May 10 22:52 media      | | )
( | | drwxr-xr-x   2 root root  4096 May 10 22:52 mnt        | | )
( | | drwxr-xr-x   7 root root  4096 May 10 23:30 opt        | | )
( | | dr-xr-xr-x 104 root root     0 Jan  1  1970 proc       | | )
( | | drwx------   5 root root  4096 Jun  1 09:04 root       | | )
( | | drwxr-xr-x  12 root root   320 May 28 11:17 run        | | )
( | | drwxr-xr-x   2 root root  4096 Jun  1 05:17 sbin       | | )
( | | drwxr-xr-x   2 root root  4096 May 10 22:52 srv        | | )
( | | dr-xr-xr-x  12 root root     0 May 28 11:17 sys        | | )
( | | drwxrwxrwt  17 root root  4096 Jun  1 09:53 tmp        | | )
( | | drwxr-xr-x  11 root root  4096 May 10 23:27 usr        | | )
( | | drwxr-xr-x  11 root root  4096 May 28 23:27 var        | | )
( |  --------------------------------------------------------  | )
( |      \                                                     | )
( |       \   ^__^                                             | )
( |        \  (oo)\_______                                     | )
( |           (__)\       )\/\                                 | )
( |               ||----w |                                    | )
( |               ||     ||                                    | )
(  ------------------------------------------------------------  )
(      \                                                         )
(       \   ^__^                                                 )
(        \  (oo)\_______                                         )
(           (__)\       )\/\                                     )
(               ||----w |                                        )
(               ||     ||                                        )
 ----------------------------------------------------------------
     o
      o   ^__^
       o  (oo)\_______
          (__)\       )\/\
              ||----w |
              ||     ||

Display Options Threshold/Breakthrough Reply to Article Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 0) by Anonymous Coward on Thursday July 21 2016, @04:58PM

    by Anonymous Coward on Thursday July 21 2016, @04:58PM (#378008)

    Since you assume a mono space font, it might be better to use semigraohical characters to draw with. An example of what I am thinking of are things like the box-drawing characters in code page 437. I believe they are in Unicode somewhere. Plus, that way you can give the cow spots too. My memory is that the cows used to have spots, or was that the dogcow?