X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=charsel;h=7938a1c251847e106e55ddad6a63fb33b6b75242;hb=5571568da8c5818cdc96f0f736fcb84b65c062cb;hp=5249f83db96b0381f9f87c2e49b8ffb074cf80ef;hpb=ba3ef21cadf9954b53686a686ee2a3f23a789624;p=charsel.git diff --git a/charsel b/charsel index 5249f83..7938a1c 100755 --- a/charsel +++ b/charsel @@ -19,18 +19,22 @@ ######################################################################## -VERSION=2.0.4 +VERSION=2.0.8 # Define argument functions function usage() { echo "Usage: /usr/bin/charsel [OPTION]... [CHARFILE]... A simple terminal character selector + -a include hidden shortcodes + -b disable color support + -c check charfile validity + -d show readme -h show this message + -L show installed charfiles without the message -l show installed charfiles - -d show readme - -v print version - -c check charfile validity - -a include hidden shortcodes + -n dont copy character to clipboard, avoids Xclip dependency + -V check for updates + -v print current version Exit status: 0 okay, @@ -40,9 +44,20 @@ Exit status: 4 other error" } +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 + echo "an update is available" + else + echo "you are up to date" + fi + +} + CHARDIR=$HOME/.cache/charsel function list() { - echo "The following charfiles are installed:" ls $CHARDIR/charfiles } @@ -104,36 +119,47 @@ function validity() { } # Look for arguments -if [ $# -eq 0 ]; then - usage - exit 3 -fi -while getopts ":alchdv" arg +while getopts ":abcdhlLnvV" arg do case ${arg} in + a) + SHOWALL="true" + ;; + b) + COLOR="bw" + ;; + c) + validity + exit 0 + ;; + d) + readme + exit 0 + ;; h) usage exit 0 ;; l) + echo "The following charfiles are installed:" list exit 0 ;; - d) - readme + L) + list exit 0 ;; + n) + COPY="no" + ;; v) echo "charsel" $VERSION exit 0 ;; - c) - validity + V) + version_check exit 0 ;; - a) - SHOWALL="true" - ;; ?) echo "Invalid option" usage @@ -143,15 +169,29 @@ do done shift $((OPTIND-1)) +if [ $# -eq 0 ]; then + echo "Please enter a valid charfile, or use charsel -h for help." + charsel -l + exit 3 +fi # Redefine charfile and check file validity CHARFILE="$CHARDIR/charfiles/$1" existence validity # Dependency check -if [[ -x xclip ]] +if [[ ! $COPY == "no" ]] then - echo "Please install xclip." + if [[ -x xclip ]] + then + echo "Please install xclip." + exit 4 + fi +fi + +if [[ $(echo $LANG | grep UTF-8) -ne 0 ]] +then + echo "Please enable unicode support" exit 4 fi @@ -167,12 +207,21 @@ clear bold=$(tput bold) normal=$(tput sgr0) +if [[ $COLOR == bw ]] +then + magenta=$(tput setaf 7) +else + magenta=$(tput setaf 5) +fi + +white=$(tput setaf 7) + # Main program while true do # Format output echo "*---------*---------------*" - echo "| ${bold}CHARSEL${normal} |" $1 + echo "| ${bold}${magenta}CHARSEL${white}${normal} |" $1 echo "*---------*---------------*" echo "" @@ -194,7 +243,7 @@ do # User input read -p "| ${bold}input shortcode: ${normal} " -N $LENGTH INPUT - if [[ $INPUT == ";"* ]] # Semicolon exits + if [[ $INPUT == ";"* ]] # Semicolon exts then clear exit 0 @@ -216,7 +265,10 @@ do fi # Copy output to clipboard - echo $OUTPUT | xclip -selection clipboard + if [[ ! $COPY == "no" ]] + then + echo -n $OUTPUT | xclip -selection clipboard + fi clear fi