Put COWPATH generation into an array and loop through it; fix typos and reformat...
authorThomas Leavitt <thomas@thomasleavitt.org>
Mon, 17 Dec 2018 05:42:29 +0000 (21:42 -0800)
committerThomas Leavitt <thomas@thomasleavitt.org>
Mon, 17 Dec 2018 05:42:29 +0000 (21:42 -0800)
.bash_logout
.bash_profile

index bda3a4d..10cd85e 100644 (file)
@@ -1,20 +1,27 @@
-# ~/.bash_lgout
+# ~/.bsah_lgout
+# prints random fortune to screen; note that -s is passed to fortune to
+# prevent your screen from being flooded, and -w is enabled, since we're
+# logging out of our session.
+#
 function lolcatcowsayfortune {
 
     # randomly pick between cowsay and cowthink
     declare -a cowsay_types=("cowsay" "cowthink")
     cowsay_type=${cowsay_types[ $RANDOM % 2 ]}
+    #echo "Cowsay type: ${cowsay_type}"
 
     # randomly pick an eye type
     declare -a eye_types=("-b" "-d" "-g" "-p" "-s" "-t" "-w" "-y")
     eye_type=${eye_types[ $RANDOM % 8 ]}
+    #echo "Eye type: ${eye_type}"
 
-    NUMOFCOWS=`cowsay -l | grep -v "Cow files in" | tail -n +2 | wc -w`
-    WHICHCOW= $((RANDOM%$NUMOFCOWS+1))
-    THISCOW=`cowsay -l | tail -n +2 | sed -e 's/\ /\'$'\n/g' | sed $WHICHCOW'q;d'`
+    num_of_cows=`cowsay -l | grep -v "Cow files in" | tail -n +2 | wc -w`
+    which_cow=$(( RANDOM % ($num_of_cows+1) ))
+    this_cow=`cowsay -l | tail -n +2 | sed -e 's/\ /\'$'\n/g' | sed $which_cow'q;d'`
 
-    #echo "Selected cow: ${THISCOW}, from ${WHICHCOW}"
-    fortune -s | $cowsay_type $eye_type -f $THISCOW -n | lolcat
+    #echo "Number of cows: ${num_of_cows}"
+    #echo "Selected cow: ${this_cow}, from ${which_cow}"
+    fortune -s -w | $cowsay_type $eye_type -f $this_cow -n | lolcat
 }
 
 # require all components to be installed for function to execute
index a73577a..b7621ad 100644 (file)
@@ -1,21 +1,19 @@
 [[ -s ~/.bashrc ]] && source ~/.bashrc
 
-# dynamically build COWPATH based on commonly used locations for cowfiles
-if [ -e /usr/local/git/cowfiles ]; then
-   COWPATH="/usr/local/git/cowfiles:$COWPATH"
-fi
-if [ -e /usr/local/git/cowsay-files/cows ]; then
-    COWPATH="/usr/local/git/cowsay-files/cows:$COWPATH"
-fi
-if [ -e /usr/local/share/localcows ]; then
-    COWPATH="/usr/local/share/localcows:$COWPATH"
-fi
-if [ -e /usr/local/share/cows ]; then
-    COWPATH="/usr/local/share/cows:$COWPATH"
-fi
-if [ -e /usr/share/cowsay ]; then
-    COWPATH="/usr/share/cowsay:$COWPATH"
-fi
+# prints random fortune to screen; note that -s is passed to fortune to
+# prevent your screen from being flooded, but cowsay does not have a similar
+# option, and some cows are quite large; you may wish to remove -s given that,
+# to enable access to a wider variety of fortunes
+
+# dynamically build COWPATH based on commonly used locations for cowfiles,
+# edit as appropriate
+declare -a cowpaths=( "/usr/local/git/cowfiles" "/usr/local/git/cowsay-files/cows" "/usr/local/share/localcows" "/usr/local/share/cows" "/usr/share/cowsay" )
+
+for cowpath in "${cowpaths[@]}"; do
+  if [ -e $cowpath ]; then
+    COWPATH="$cowpath:$COWPATH"
+  fi
+done 
 
 if [ -n "$COWPATH" ]; then
     export COWPATH
@@ -26,17 +24,20 @@ function lolcatcowsayfortune {
     # randomly pick between cowsay and cowthink
     declare -a cowsay_types=("cowsay" "cowthink")
     cowsay_type=${cowsay_types[ $RANDOM % 2 ]}
+    #echo "Cowsay type: ${cowsay_type}"
 
     # randomly pick an eye type
     declare -a eye_types=("-b" "-d" "-g" "-p" "-s" "-t" "-w" "-y")
     eye_type=${eye_types[ $RANDOM % 8 ]}
+    #echo "Eye type: ${eye_type}"
 
-    NUMOFCOWS=`cowsay -l | grep -v "Cow files in" | tail -n +2 | wc -w`
-    WHICHCOW= $((RANDOM%$NUMOFCOWS+1))
-    THISCOW=`cowsay -l | tail -n +2 | sed -e 's/\ /\'$'\n/g' | sed $WHICHCOW'q;d'`
+    num_of_cows=`cowsay -l | grep -v "Cow files in" | tail -n +2 | wc -w`
+    which_cow=$(( RANDOM % ($num_of_cows+1) ))
+    this_cow=`cowsay -l | tail -n +2 | sed -e 's/\ /\'$'\n/g' | sed $which_cow'q;d'`
 
-    #echo "Selected cow: ${THISCOW}, from ${WHICHCOW}"
-    fortune -s | $cowsay_type $eye_type -f $THISCOW -n | lolcat
+    #echo "Number of cows: ${num_of_cows}"
+    #echo "Selected cow: ${this_cow}, from ${which_cow}"
+    fortune -s | $cowsay_type $eye_type -f $this_cow -n | lolcat
 }
 
 # require all components to be installed for function to execute