#!/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 <https://www.gnu.org/licenses/>.
+
# Merge both global and local charfiles
+
CHARDIR=~/.cache/charsel
if [[ ! -d $CHARDIR ]]
# 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
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
# Copy output to clipboard
echo $OUTPUT | xclip -selection clipboard
- # Clear screen
clear
done