zsh/aliases/tmsu
2020-02-24 10:38:27 +01:00

42 lines
809 B
Bash
Executable file

#!/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
}