better implementation of add (arguably)

the grep regex-s used "should" be posix compliant.
also fixes grabbing words inside a link starting with + into TAGS
This commit is contained in:
NRK
2021-04-14 07:30:08 +06:00
parent 432b849e0c
commit 6c1780cca8

8
sxbm
View File

@ -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!" ||