X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=charsel;h=077b10f87f8e11bf2c0e29cbdc1b528b31fe9528;hb=b53b2bac1b5e1dbd648d2225355ea4d70857f0e5;hp=4bb18b497e71cbf657ea171cc7032d585e4209ca;hpb=974c7bf0dcf3fa8d77e93400fa69acf931950503;p=charsel.git diff --git a/charsel b/charsel index 4bb18b4..077b10f 100755 --- a/charsel +++ b/charsel @@ -6,51 +6,76 @@ 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 $HOME/.local/share/charsel/- $CHARDIR/ fi # Check for user inputs -if [ $1 = "list" ] +if [[ $1 == "list" \ + || $1 == "-l" \ + || $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) +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 ',' + + echo "*-------------------------*" + echo "| previous shorcode:" $INPUT + echo "| previous output: " $OUTPUT + echo "*-------------------------*" + + # User input + read -p "| input shortcode: " -N $LENGTH INPUT - # Automatically enter 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) + 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