X-Git-Url: http://git.armaanb.net/?a=blobdiff_plain;f=charsel;h=c274ef84a53beee3aedad859a1093c6ad23c19ee;hb=b1e333869fe2ad2558e6cb1eb0e94d8655cdadf9;hp=56e1fdf244dfd622206370bb0b014baccb10fe8c;hpb=28543d91684581b0931dbe6173635d970e2276d0;p=charsel.git diff --git a/charsel b/charsel index 56e1fdf..c274ef8 100755 --- a/charsel +++ b/charsel @@ -30,8 +30,10 @@ A simple terminal character selector Exit status: 0 okay, - 1 invalid charfile - 2 usage error/invalid option" + 1 charfile does not exist, + 2 charfile syntax error, + 3 usage error/invalid option, + 4 other error" } CHARDIR=$HOME/.cache/charsel @@ -50,39 +52,11 @@ function invalid_charfile() { exit 1 } -# Look for arguments -while getopts ":lhd" arg -do - case ${arg} in - h) - usage - exit 0 - ;; - l) - list - exit 0 - ;; - d) - readme - exit 0 - ;; - ?) - echo "Invalid option" - usage - exit 2 - ;; - :) - break - ;; - esac -done -shift $((OPTIND-1)) - # Check if Xclip is installed if [[ -x xclip ]] then echo "Please install xclip." - exit 1 + exit 4 fi # Merge global and local charfiles @@ -111,6 +85,34 @@ then cp -rf /usr/share/charsel/* $CHARDIR fi +# Look for arguments +while getopts ":lhd" arg +do + case ${arg} in + h) + usage + exit 0 + ;; + l) + list + exit 0 + ;; + d) + readme + exit 0 + ;; + ?) + echo "Invalid option" + usage + exit 3 + ;; + :) + break + ;; + esac +done +shift $((OPTIND-1)) + # Check if charfile exists CHARFILE="$CHARDIR/charfiles/$1" if [[ ! -f $CHARFILE ]] @@ -118,6 +120,15 @@ then invalid_charfile fi +# VERY basic syntax validation +if [[ $(grep , $CHARFILE && grep - $CHARFILE) ]] +then + echo "valid charfile" +else + echo "invalid charfile" + exit 2 +fi + # Define length of shortcode LENGTH=$(cat $CHARFILE \ | cut -f 1 -d ',' -s \ @@ -166,6 +177,12 @@ do OUTPUT="" fi + if [[ $INPUT == ";"* ]] + then + clear + exit 0 + fi + # Copy output to clipboard echo $OUTPUT | xclip -selection clipboard