Merge branch 'list' into dev
This commit is contained in:
65
sxbm
65
sxbm
@ -70,6 +70,69 @@ bm_add(){
|
|||||||
die "Couldn't add link"
|
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 ###
|
### main ###
|
||||||
############
|
############
|
||||||
@ -86,6 +149,8 @@ case "$1" in
|
|||||||
bm_add "$@"
|
bm_add "$@"
|
||||||
;;
|
;;
|
||||||
"ls"|"list")
|
"ls"|"list")
|
||||||
|
shift
|
||||||
|
bm_list "$@"
|
||||||
;;
|
;;
|
||||||
"open")
|
"open")
|
||||||
;;
|
;;
|
||||||
|
|||||||
Reference in New Issue
Block a user