list: major restructure
currently only tag search is functional.
This commit is contained in:
63
sxbm
63
sxbm
@ -86,62 +86,63 @@ bm_add() {
|
|||||||
die "Couldn't add link"
|
die "Couldn't add link"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__awk_search() {
|
||||||
|
awk "$@"' { LINK=$1; $1="";
|
||||||
|
print NR ") " LINK " " $0 }' "$DATA_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
# this entire function is a massive joke
|
# this entire function is a massive joke
|
||||||
bm_list() {
|
bm_list() {
|
||||||
QUERY_TAG=""
|
TAG_STRICT="||"
|
||||||
QUERY_TITLE=""
|
TITLE_STRICT="&&"
|
||||||
QUERY_STRICT="||"
|
|
||||||
|
|
||||||
while [ -n "$1" ]; do
|
while [ -n "$1" ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
"-c"|"--disable-colors")
|
"-c"|"--disable-colors")
|
||||||
COL_LINK=""; COL_TITLE=""; COL_LINE_NUM="";
|
unset COL_LINK COL_TITLE COL_LINE_NUM
|
||||||
shift
|
|
||||||
;;
|
;;
|
||||||
"-s"|"--strict")
|
"-s"|"--strict")
|
||||||
QUERY_STRICT="&&"
|
TAG_STRICT="&&"
|
||||||
shift
|
;;
|
||||||
|
"-S")
|
||||||
|
TITLE_STRICT="||"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
# POSIX shell doesn't have arrays.
|
# search titles
|
||||||
# Desperate times calls for desperate measures!
|
# awk 'toupper($0)~"[[:blank:]]SUCKLESS[[:blank:]]" && toupper($0)~"[[:blank:]]ROCKS[[:blank:]]"'
|
||||||
|
# search tags
|
||||||
|
# awk "/[[:blank:]]\+apps($| )/ || /[[:blank:]]\+books($| )/"
|
||||||
while [ -n "$1" ]; do
|
while [ -n "$1" ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
+*)
|
+*)
|
||||||
[ -z "$QUERY_TAG" ] &&
|
QUERY_TAG="/[[:blank:]]\\$1($| )/ $TAG_STRICT $QUERY_TAG"
|
||||||
QUERY_TAG="/[[:blank:]]\\$1($| )/" ||
|
|
||||||
QUERY_TAG="${QUERY_TAG} $QUERY_STRICT /[[:blank:]]\\$1($| )/"
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
if [ -z "$QUERY_TITLE" ]; then
|
tmp_char="$(echo "$1" | tr '[:lower:]' '[:upper:]')"
|
||||||
QUERY_TITLE="grep -i -e \"$1\""
|
QUERY_TITLE=""
|
||||||
else
|
|
||||||
[ "$QUERY_STRICT" = "&&" ] &&
|
|
||||||
QUERY_TITLE="${QUERY_TITLE} | grep -i -e \"$1\"" ||
|
|
||||||
QUERY_TITLE="${QUERY_TITLE} -e \"$1\""
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
QUERY_TAG="${QUERY_TAG%$TAG_STRICT }"
|
||||||
|
|
||||||
__tag_search() {
|
if [ -z "$QUERY_TAG" ] && [ -z "$QUERY_TITLE" ]; then
|
||||||
awk -v COL_LINE_NUM="$COL_LINE_NUM" \
|
__awk_search
|
||||||
-v COL_LINK="$COL_LINK" -v COL_TITLE="$COL_TITLE" \
|
elif [ -n "$QUERY_TAG" ] && [ -z "$QUERY_TITLE" ]; then
|
||||||
"$QUERY_TAG"'{ LINK=$1; $1="";
|
__awk_search "$QUERY_TAG"
|
||||||
gsub(/[[:space:]]\+[^[:space:]]+/,"");
|
elif [ -z "$QUERY_TAG" ] && [ -n "$QUERY_TITLE" ]; then
|
||||||
print COL_LINE_NUM NR ") " COL_LINK LINK " " COL_TITLE $0 }' \
|
__awk_search "$QUERY_TITLE"
|
||||||
"$DATA_FILE"
|
elif [ -n "$QUERY_TAG" ] && [ -n "$QUERY_TITLE" ]; then
|
||||||
}
|
printf '%s\n%s\n' \
|
||||||
|
"$(__awk_search "$QUERY_TAG")" "$(__awk_search "$QUERY_TITLE")" |
|
||||||
[ -z "$QUERY_TITLE" ] &&
|
sort | uniq -d
|
||||||
__tag_search ||
|
fi
|
||||||
__tag_search | eval "$QUERY_TITLE"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bm_open() {
|
bm_open() {
|
||||||
|
|||||||
Reference in New Issue
Block a user