zsh/aliases/tmsu

42 lines
809 B
Plaintext
Raw Permalink Normal View History

2020-02-24 09:32:03 +00:00
#!/bin/zsh
exists tmsu || return
tag() {
separator=${@[(ie):]}
if [[ ${separator} -ge ${#@} ]]; then
echo "Usage: tag FILES... : TAGS..."
return 1
fi
for file in $@[1,$((separator - 1))]; do
tmsu tag --tags="${(j: :)*[$((separator + 1)),${#*}]}" $file
done
}
papertag() {
if [[ -z $2 ]]; then
echo "Usage: papertag FILE [-v] [-y YEAR] [AUTHOR...] [:: OTHER TAGS]"
return 1
fi
local year
zparseopts -D -E y:=year -year:=year \
v=verbose -verbose=verbose
local paper=$1; shift
tag $paper : paper
if [[ -n "$year" ]]; then
tag $verbose $paper meta:/year/eq/${year[2]}/@/
fi
while [[ -n $1 ]]; do
local author=$1; shift
if [[ "$author" == "::" ]]; then break; fi
tag $verbose $paper meta:/author/eq/$author/@
done
for tag in "$@"; do
tag $verbose $paper $tag
done
}