X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=charsel;h=17b3266bc8d3961f810ec8d95490a881bde1e2f2;hb=cd756876f0f5cb07e3d11a379833b2e59e449802;hp=b3dc78623b172d3f0aa75f1132c255167b97afce;hpb=02249eac92b1de13a5d6b0231aad68c51ad56b18;p=charsel.git diff --git a/charsel b/charsel index b3dc786..17b3266 100755 --- a/charsel +++ b/charsel @@ -1,30 +1,38 @@ -#!/usr/bin/env sh -# Merge both global and local charfiles -CHARDIR=/tmp/charsel -cp -R /usr/share/charsel/* $CHARDIR/ -cp -R ~/.local/share/* $CHARDIR/ - -# Clear screen -clear +#!/usr/bin/env bash -# Check if user provided an input -[ -z "$1" ] && echo "No argument supplied" && exit +# Merge both global and local charfiles +CHARDIR=~/.cache/charsel + +if [[ ! -d $CHARDIR ]] +then + mkdir $CHARDIR/ +elif [[! "$(ls -A $CHARDIR)"]] +then + cp -rf /usr/share/charsel/* $CHARDIR/ + cp -rf ~/.local/share/charsel/* $CHARDIR/ +fi -if [ $1 = "list" ]; then +# Check for user inputs +if [ $1 = "list" ] +then echo "The following charfiles are installed" ls $CHARDIR/charfiles exit +elif [[ $1 = "help" || $1 = "-h" || $1 = "--help" || $# -ne 1 ]] +then + cat /usr/share/doc/charsel/README.md + exit else -# Define charfile +# Clear screen +clear + +# Define charfile path CHARFILE=$CHARDIR/charfiles/$1 # Define length of shortcut LENGTH=$(cat $CHARFILE | cut -f 1 -d ',' -s | wc -L | cut -b 1) -# MOTD -cat /tmp/charsel/motd - # Main program while : do @@ -33,9 +41,10 @@ do # Automatically enter input read -N $LENGTH INPUT - - # Navigate to the right characther - OUTPUT=$(grep $INPUT $CHARFILE | cut -f 2 -d ',' -s) + + # This can definately be simplifed, but it works fine + LINENUMBER=$(cut -f 1 -d ',' -s $CHARFILE | grep -n $INPUT | cut -d : -f 1) + OUTPUT=$(cut -f 2 -d ',' -s $CHARFILE | head -$LINENUMBER | tail +$LINENUMBER) # Clear screen clear