Merge branch 'list' into dev

This commit is contained in:
NRK
2021-04-20 12:15:58 +06:00

65
sxbm
View File

@ -70,6 +70,69 @@ bm_add(){
die "Couldn't add link"
}
bm_list(){
local QUERY_TAG
local QUERY_TITLE
local QUERY_STRICT="||"
while [ -n "$1" ]; do
case "$1" in
"-c"|"--disable-colors")
COL_LINK=""; COL_TITLE=""; COL_LINE_NUM="";
shift
;;
"-s"|"--strict")
local QUERY_STRICT="&&"
shift
;;
*)
break
;;
esac
done
# POSIX shell doesn't have arrays.
# Desperate times calls for desperate measures!
while [ -n "$1" ]; do
case "$1" in
+*)
[ -z "$QUERY_TAG" ] &&
QUERY_TAG="/[[:space:]]\\$1[[:space:]]/" ||
QUERY_TAG="${QUERY_TAG} $QUERY_STRICT /[[:space:]]\\$1[[:space:]]/"
shift
;;
*)
if [ "$QUERY_STRICT" = "&&" ]; then
[ -z "$QUERY_TITLE" ] &&
QUERY_TITLE="grep -i -e \"$1\"" ||
QUERY_TITLE="${QUERY_TITLE} | grep -i -e \"$1\""
else
[ -z "$QUERY_TITLE" ] &&
QUERY_TITLE="grep -i -e \"$1\"" ||
QUERY_TITLE="${QUERY_TITLE} -e \"$1\""
fi
shift
;;
esac
done
[ -z "$QUERY_TITLE" ] &&
awk --posix -v COL_LINE_NUM="$COL_LINE_NUM" \
-v COL_LINK="$COL_LINK" -v COL_TITLE="$COL_TITLE" \
"$QUERY_TAG { LINK=\$1; \$1=\"\";
gsub(/[[:space:]]\+[^[:space:]]+/,\"\");
print COL_LINE_NUM NR \") \" COL_LINK LINK \" \" COL_TITLE \$0 }" \
"$DATA_FILE"
[ -n "$QUERY_TITLE" ] &&
awk --posix -v COL_LINE_NUM="$COL_LINE_NUM" \
-v COL_LINK="$COL_LINK" -v COL_TITLE="$COL_TITLE" \
"$QUERY_TAG { LINK=\$1; \$1=\"\";
gsub(/[[:space:]]\+[^[:space:]]+/,\"\");
print COL_LINE_NUM NR \") \" COL_LINK LINK \" \" COL_TITLE \$0 }" \
"$DATA_FILE" | eval "$QUERY_TITLE"
}
############
### main ###
############
@ -86,6 +149,8 @@ case "$1" in
bm_add "$@"
;;
"ls"|"list")
shift
bm_list "$@"
;;
"open")
;;