X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=charsel;h=5ee8b80da8e0cf683a20cf04c60077c33068aa87;hb=964160e6b899f5074aec9a23faaf176df38bbbbd;hp=adffd273bd12d2b3f3afc32e4b41dae8d36e2a01;hpb=17f712c5288936886131e5d9c11e962c745fe7df;p=charsel.git diff --git a/charsel b/charsel index adffd27..5ee8b80 100755 --- 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 . + +######################################################################## + # 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,29 +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="" + OUTPUT="" fi # Copy output to clipboard - echo $OUTPUT | xclip -selection clipboard + echo $OUTPUT \ + | xclip -selection clipboard - # Clear screen clear done