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:
8
sxbm
8
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!" ||
|
||||
|
||||
Reference in New Issue
Block a user