From 9bee3043c894902e7d7d36e77e04be8744b3d242 Mon Sep 17 00:00:00 2001 From: NRK Date: Mon, 21 Jun 2021 06:32:03 +0600 Subject: [PATCH] simplify bm_add logic only if i knew how simple things really are. --- sxbm | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/sxbm b/sxbm index 92290e4..54c1636 100755 --- a/sxbm +++ b/sxbm @@ -63,16 +63,17 @@ version(){ bm_add(){ [ -z "$1" ] && die "No arguments provided. Use '$APPNAME -h' for help" - # TODO while functional, this is extremely fucking stupid. - # there has to be a better way to do this. - LINK=$( echo "$@" | grep -o "[^[:space:]]\+\.[^[:space:]]\+" ) + while [ -n "$1" ]; do + case "$1" in + *.*) [ -z "$LINK" ] && + LINK="$1" || + die "too many links\n$LINK\n$1" ;; + +*) TAGS="${TAGS}$1 " ;; + *) TITLE="${TITLE}$1 " ;; + esac + shift + done [ -z "$LINK" ] && die "No links found" - [ "$( echo "$LINK" | wc -l )" -gt 1 ] && die "Too many links!!\n$LINK" - - REMAINING=$( echo "$@" | tr " " "\n" | grep -v "[^[:space:]]\+\.[^[:space:]]\+" ) - [ -n "$REMAINING" ] && - TAGS=$( echo "$REMAINING" | grep "^\\+[^[:space:]]" | tr "\n" " " ) && - TITLE=$( echo "$REMAINING" | grep -v "^\\+[^[:space:]]" | tr "\n" " " ) echo "$LINK $TITLE $TAGS" >> $DATA_FILE && echo "Link $(wc -l < "$DATA_FILE") added successfully!" ||