From 2b5f14aea3ebf21db44c3b7c2ec3ac265b4ed923 Mon Sep 17 00:00:00 2001 From: Armaan Bhojwani <3fb650a9-b47e-4604-a282-1dd91953b2ee@anonaddy.me> Date: Thu, 15 Oct 2020 19:12:03 -0400 Subject: [PATCH] usability fixes --- charsel | 48 +++++++++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/charsel b/charsel index 4bb18b4..1143947 100755 --- a/charsel +++ b/charsel @@ -6,51 +6,61 @@ CHARDIR=~/.cache/charsel if [[ ! -d $CHARDIR ]] then mkdir $CHARDIR/ -elif [[! "$(ls -A $CHARDIR)"]] +elif [[ ! "$(ls -A $CHARDIR)" ]] then - cp -rf /usr/share/charsel/* $CHARDIR/ - cp -rf ~/.local/share/charsel/* $CHARDIR/ + cp -rf /usr/share/charsel/- $CHARDIR/ + cp -rf ~/.local/share/charsel/- $CHARDIR/ fi # Check for user inputs -if [ $1 = "list" ] +if [[ $1 == "list" ]] then echo "The following charfiles are installed" ls $CHARDIR/charfiles - exit -elif [[ $1 = "help" || $1 = "-h" || $1 = "--help" || $# -ne 1 ]] + exit 0 +elif [[ $1 == "help" || $1 == "-h" || $1 == "--help" || $# -ne 1 ]] then cat /usr/share/doc/charsel/README.md - exit -else - -# Clear screen -clear + exit 0 +fi # Define charfile path CHARFILE=$CHARDIR/charfiles/$1 +if [[ ! -f $CHARFILE ]] +then + echo "Please enter a valid charfile. You can list installed charfiles with \`charsel list\`" + exit 1 +fi + # Define length of shortcut LENGTH=$(cat $CHARFILE | cut -f 1 -d ',' -s | wc -L | cut -b 1) +# Clear screen +clear + # Main program while : do - # Put charfile into table, showing only the shortcuts below the divider in the charfile - cat $CHARFILE | grep -A 100 - | tail -n +2 | column -t --output-separator ' | ' --separator ',' + # Format charfile into table, showing only the shortcuts below the divider in the charfile + cat $CHARFILE | grep -A 100 - | tail -n +2 | column -t -N input,output --output-separator ' | ' --separator ',' - # Automatically enter input + # Print a separator + echo "" + echo "--------------------------" + echo "enter the input shortcode here:" + + # User input read -N $LENGTH INPUT - + # This can definately be simplifed, but it works fine LINENUMBER=$(cut -f 1 -d ',' -s $CHARFILE | grep -wn $INPUT | cut -d : -f 1) OUTPUT=$(cut -f 2 -d ',' -s $CHARFILE | head -$LINENUMBER | tail +$LINENUMBER) + # Copy output to clipboard + echo $OUTPUT | xclip -selection clipboard + # Clear screen clear - # Copy output to clipboard - echo $OUTPUT | xclip -selection clipboard done - -fi -- 2.39.2