X-Git-Url: https://git.armaanb.net/?p=charsel.git;a=blobdiff_plain;f=charsel;fp=charsel;h=56ca812294d41d18d8e0e00cf776dc2283211a40;hp=800b964b55d63d71183b439088c9c2d051a705f5;hb=983fe3a83791de6f8df163b936c912487c81be43;hpb=0f6aa0e49c7e0baf6741242f5d85f31b37e93979 diff --git a/charsel b/charsel index 800b964..56ca812 100755 --- a/charsel +++ b/charsel @@ -1,23 +1,7 @@ #!/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 . - -######################################################################## +# Charsel - terminal character selector +# Copyright Armaan Bhojwani 2020, MIT License. See the LICENSE file or +# https://opensource.org/licenses/MIT for more information VERSION=2.0.8 @@ -47,8 +31,7 @@ Exit status: function version_check(){ NEW_VERSION=$(curl -s https://codeberg.org/armaan/charsel/raw/branch/master/charsel \ | grep VERSION= | tail -c +9) - if [[ $VERSION != "$NEW_VERSION" ]] - then + if [[ $VERSION != "$NEW_VERSION" ]]; then echo "an update is available" else echo "you are up to date" @@ -72,44 +55,32 @@ function missing_charfile() { } # Merge global and local charfiles -if [[ -d $CHARDIR ]] -then +if [[ -d $CHARDIR ]]; then rm -rf "${CHARDIR:?}"/* else mkdir "$CHARDIR" fi LOCALCHARDIR=$HOME/.local/share/charsel/charfiles -if [[ ! -d $LOCALCHARDIR ]] -then - mkdir -p "$LOCALCHARDIR" -fi +[[ -d $LOCALCHARDIR ]] || mkdir -p "$LOCALCHARDIR" localdirfiles="$LOCALCHARDIR"/* -if [[ -n "${#localdirfiles[*]}" ]] -then - cp -rf "$LOCALCHARDIR"/../* "$CHARDIR" -fi +[[ -n "${#localdirfiles[*]}" ]] && cp -rf "$LOCALCHARDIR"/../* "$CHARDIR" globaldirfiles=($/usr/share/charfiles/) -if [[ -n "${#globaldirfiles[*]}" ]] -then - cp -rf /usr/share/charsel/* "$CHARDIR" -fi +[[ -n "${#globaldirfiles[*]}" ]] && cp -rf /usr/share/charsel/* "$CHARDIR" # Check if charfile exists CHARFILE="$CHARDIR/charfiles/$2" function existence() { - if [[ ! -f $CHARFILE ]] - then + if [[ ! -f $CHARFILE ]]; then missing_charfile fi } # VERY basic syntax check function validity() { - if [[ $(grep , "$CHARFILE" && grep - "$CHARFILE") ]] - then + if [[ $(grep , "$CHARFILE" && grep - "$CHARFILE") ]]; then echo "valid charfile" else existence @@ -151,7 +122,7 @@ do ;; n) COPY="no" - ;; + ;; v) echo "charsel" $VERSION exit 0 @@ -180,10 +151,8 @@ existence validity # Dependency check -if [[ ! $COPY == "no" ]] -then - if [[ -x xclip ]] - then +if [[ $COPY == "no" ]]; then + if [[ -x /usr/bin/xclip ]]; then echo "Please install xclip." exit 4 fi @@ -200,12 +169,8 @@ clear bold=$(tput bold) normal=$(tput sgr0) -if [[ $COLOR == bw ]] -then - magenta=$(tput setaf 7) -else - magenta=$(tput setaf 5) -fi +magenta=$(tput setaf 5) +[[ $COLOR == bw ]] && magenta=$(tput setaf 7) white=$(tput setaf 7) @@ -218,8 +183,7 @@ do echo "*---------*---------------*" echo "" - if [[ $SHOWALL == true ]] - then + if [[ $SHOWALL == true ]]; then sed "$CHARFILE" -e '/^[ \t]*#/d' | tail -n +2 \ | column -t -N "input","output" --output-separator ' | ' --separator ',' else @@ -229,21 +193,16 @@ do echo "" echo "*-------------------------*" - echo "| previous shorcode:" "$INPUT" + echo "| previous shorcode:" "$(echo $INPUT)" echo "| previous output: " "$OUTPUT" echo "*-------------------------*" # User input - read -p "| ${bold}input shortcode: ${normal} " -N "$LENGTH" INPUT + read -r -p "| ${bold}input shortcode: ${normal} " -N "$LENGTH" INPUT - if [[ $INPUT == ";"* ]] # Semicolon exts - then + if [[ $INPUT == ";"* ]]; then # Semicolon exts clear exit 0 - elif [[ $INPUT == " "* ]] # Spaces dont count - then - OUTPUT="" - clear else # Finds line number of shortcode LINENUMBER=$(cut -f 1 -d ',' -s "$CHARFILE" | grep -wn "$INPUT" | cut -d : -f 1) @@ -252,14 +211,12 @@ do 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 + if [[ $(cut -f 1 -d ',' -s "$CHARFILE" | grep -wnc "$INPUT") == "0" ]]; then OUTPUT="" fi # Copy output to clipboard - if [[ ! $COPY == "no" ]] - then + if [[ ! $COPY == "no" ]]; then echo -n "$OUTPUT" | xclip -selection clipboard fi