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"
|
||||
}
|
||||
|
||||
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")
|
||||
;;
|
||||
|
||||
Reference in New Issue
Block a user