Remove tagsistant aliases, add tmsu
This commit is contained in:
parent
18a233ab66
commit
6292d72015
|
@ -95,80 +95,6 @@ cd(){
|
||||||
# filesystem stuff
|
# filesystem stuff
|
||||||
##############################################################################{{{
|
##############################################################################{{{
|
||||||
|
|
||||||
t=${TAGSISTANT_ROOT:-$HOME/tagged}/store
|
|
||||||
tagmount() {
|
|
||||||
tagsistant ${TAGSISTANT_ROOT:-$HOME/tagged} &>/tmp/tagsistant.$USER
|
|
||||||
}
|
|
||||||
|
|
||||||
tag() {
|
|
||||||
if [[ -z $2 ]]; then
|
|
||||||
printf "%s\n" \
|
|
||||||
"Usage: tag FILE... [-n name] [-v] [-p] TAG..." \
|
|
||||||
"" \
|
|
||||||
"Each TAG must end with the @ delimiter component." \
|
|
||||||
"Each File must have a name different from a single @"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
local name preview
|
|
||||||
|
|
||||||
zparseopts -D -E n:=name -name:=name p=preview -preview=preview \
|
|
||||||
v=verbose -verbose=verbose
|
|
||||||
|
|
||||||
local sources=()
|
|
||||||
local tags=()
|
|
||||||
|
|
||||||
for i in "${@}"; do
|
|
||||||
if [[ ${i:t} == "@" ]]; then
|
|
||||||
tags+=${i}
|
|
||||||
else
|
|
||||||
sources+=${i:A}
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
for source in "${sources[@]}"; do
|
|
||||||
for tag in "${tags[@]}"; do
|
|
||||||
target=~t/$tag
|
|
||||||
if [[ ! -d $target ]]; then mkdir -p $target; fi
|
|
||||||
if [[ -n $verbose ]]; then echo "Tagging $source with $tag"; fi
|
|
||||||
${=preview:+echo} ln -s $source $target/${name[2]}
|
|
||||||
done
|
|
||||||
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 $verbose $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
|
|
||||||
}
|
|
||||||
|
|
||||||
tcd() {
|
|
||||||
rpath=$(realpath ~t/$1)
|
|
||||||
if [[ -d $rpath ]]; then
|
|
||||||
cd $rpath;
|
|
||||||
else
|
|
||||||
cd ${rpath:h}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# count files in current or given directory
|
# count files in current or given directory
|
||||||
count() {
|
count() {
|
||||||
|
|
41
aliases/tmsu
Executable file
41
aliases/tmsu
Executable file
|
@ -0,0 +1,41 @@
|
||||||
|
#!/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
|
||||||
|
}
|
Loading…
Reference in a new issue