From 5a438f89bca0f0d143ece98d3aa149d97a354702 Mon Sep 17 00:00:00 2001 From: Armaan Bhojwani <3fb650a9-b47e-4604-a282-1dd91953b2ee@anonaddy.me> Date: Sun, 18 Oct 2020 09:22:39 -0400 Subject: [PATCH] made syntax checker more usable --- charsel | 55 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/charsel b/charsel index b15a1ff..6e687e6 100755 --- a/charsel +++ b/charsel @@ -29,6 +29,7 @@ A simple terminal character selector -l show installed charfiles -d show readme -v print version + -c check charfile validity --all include hidden shortcodes Exit status: @@ -49,19 +50,12 @@ function readme() { cat /usr/share/doc/charsel/README.md } -function invalid_charfile() { +function missing_charfile() { echo "The selected charfile is missing or invalid" list exit 1 } -# Check if Xclip is installed -if [[ -x xclip ]] -then - echo "Please install xclip." - exit 4 -fi - # Merge global and local charfiles if [[ -d $CHARDIR ]] then @@ -88,8 +82,29 @@ then cp -rf /usr/share/charsel/* $CHARDIR fi +# Check if charfile exists +CHARFILE="$CHARDIR/charfiles/$2" +function existence() { + if [[ ! -f $CHARFILE ]] + then + missing_charfile + fi +} + +# VERY basic syntax check +function validity() { + if [[ $(grep , $CHARFILE && grep - $CHARFILE) ]] + then + echo "valid charfile" + else + existence + echo "invalid charfile" + exit 2 + fi +} + # Look for arguments -while getopts ":lhdv" arg +while getopts ":lchdv" arg do case ${arg} in h) @@ -108,6 +123,10 @@ do echo "charsel" $VERSION exit 0 ;; + c) + validity + exit 0 + ;; ?) echo "Invalid option" usage @@ -120,20 +139,16 @@ do done shift $((OPTIND-1)) -# Check if charfile exists +# Redefine charfile and check file validity CHARFILE="$CHARDIR/charfiles/$1" -if [[ ! -f $CHARFILE ]] -then - invalid_charfile -fi +existence +validity -# VERY basic syntax validation -if [[ $(grep , $CHARFILE && grep - $CHARFILE) ]] +# Dependency check +if [[ -x xclip ]] then - echo "valid charfile" -else - echo "invalid charfile" - exit 2 + echo "Please install xclip." + exit 4 fi # Define length of shortcode -- 2.39.2