diff --git a/sxbm b/sxbm index 29448ac..51d7744 100755 --- a/sxbm +++ b/sxbm @@ -56,12 +56,14 @@ bm_add(){ # TODO while functional, this is extremely fucking stupid. # there has to be a better way to do this. - local LINK=$( echo "$@" | tr " " "\n" | grep -E "\w+\.\w+" ) + local LINK=$( echo "$@" | grep -o "[^[:space:]]\+\.[^[:space:]]\+" ) [ -z "$LINK" ] && die "No links found" [ "$( echo "$LINK" | wc -l )" -gt 1 ] && die "Too many links!!\n$LINK" - local TAGS=$( echo "$@" | grep -o -E "\+\w+" | tr "\n" " " ) - local TITLE=$( echo "$@" | tr " " "\n" | sed '/^+/d;/.*\.[a-zA-Z]/d' | tr "\n" " " ) + local REMAINING=$( echo "$@" | tr " " "\n" | grep -v "[^[:space:]]\+\.[^[:space:]]\+" ) + [ -n "$REMAINING" ] && + local TAGS=$( echo "$REMAINING" | grep "^\\+[^[:space:]]" | tr "\n" " " ) && + local TITLE=$( echo "$REMAINING" | grep -v "^\\+[^[:space:]]" | tr "\n" " " ) echo "$LINK $TITLE $TAGS" >> $DATA_FILE && echo "Link $(wc -l < "$DATA_FILE") added successfully!" ||