]> git.armaanb.net Git - charsel.git/blobdiff - charsel
check for xclip
[charsel.git] / charsel
diff --git a/charsel b/charsel
index a8b5e66c5771848ae71e6dcd4fda322a19afd076..5ee8b80da8e0cf683a20cf04c60077c33068aa87 100755 (executable)
--- a/charsel
+++ b/charsel
@@ -1,7 +1,26 @@
 #!/usr/bin/env bash
 
+#######################################################################
+
+# (C) Copyright Armaan Bhojwani, 2020
+
+# 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 <https://www.gnu.org/licenses/>.
+
+########################################################################
+
 # Merge both global and local charfiles
-CHARDIR=~/.cache/charsel
+CHARDIR=$HOME/.cache/charsel
 
 if [[ ! -d $CHARDIR ]]
 then
@@ -12,12 +31,19 @@ then
   cp -rf $HOME/.local/share/charsel/- $CHARDIR/
 fi
 
+# Check for xclip
+if [[ ! -f "$(which xclip)" ]]
+then
+  echo "Please install xclip."
+  exit 1
+fi
+
 # Check for user inputs
 if [[ $1 == "list" \
   || $1 == "-l" \
   || $1 == "--list" ]]
 then
-  echo "The following charfiles are installed"
+  echo "The following charfiles are installed:"
   ls $CHARDIR/charfiles
   exit 0
 elif [[ $1 == "help" \
@@ -32,27 +58,28 @@ fi
 # Define charfile path
 CHARFILE=$CHARDIR/charfiles/$1
 
+# Check if given charfile exists
 if [[ ! -f $CHARFILE ]]
 then
-  echo "Please enter a valid charfile. You can list installed charfiles with \`charsel list\`"
+  echo "Please enter a valid charfile."
+  charsel list
   exit 1
 fi
 
-# Define length of shortcut
+# Define length of shortcode
 LENGTH=$(cat $CHARFILE \
   | cut -f 1 -d ',' -s \
   | wc -L \
   | cut -b 1)
 
-# Clear screen
 clear
 
 # Main program
-while :
+while true
 do
   # Format output
   echo "*---------*---------------*"
-  echo "| CHARSEL | " $1
+  echo "| CHARSEL |" $1
   echo "*---------*---------------*"
   echo ""
 
@@ -67,22 +94,32 @@ do
   echo "| previous shorcode:" $INPUT
   echo "| previous output:  " $OUTPUT
   echo "*-------------------------*"
-  
+
   # User input
   read -p "| input shortcode:   " -N $LENGTH INPUT
 
   # This can definately be simplifed, but it works fine
+  # Finds line number of shortcode
   LINENUMBER=$(cut -f 1 -d ',' -s $CHARFILE \
     | grep -wn $INPUT \
     | cut -d : -f 1)
+
+  # Outputs charachter selected above
   OUTPUT=$(cut -f 2 -d ',' -s $CHARFILE \
     | head -$LINENUMBER \
     | tail +$LINENUMBER)
 
+  # Check to see if the shortcode actually exists
+  if [[ $(cut -f 1 -d ',' -s $CHARFILE \
+    | grep -wnc $INPUT) == "0" ]]
+  then
+    OUTPUT=""
+  fi
+
   # Copy output to clipboard
-  echo $OUTPUT | xclip -selection clipboard
+  echo $OUTPUT \
+    | xclip -selection clipboard
 
-  # Clear screen
   clear
 
 done