blob: 645bf1abf8fff3964555dd75c3fec193af23a75d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#!/bin/zsh
while getopts ":l" opt; do; case $opt in
l) label=1 ;;
*) exit 1
esac; done
cycle=( artist track album group )
src=$(</dev/stdin)
if [[ ! $src =~ '^\[\[.*\]\]$' ]]; then
printf '[[%s]]' "$src"; exit 0
fi
src=$src:s/[[//:s/]]//
if [[ ! $src =~ '^[^ ]+:' ]]; then
if [[ -v label ]];
then printf '[[%s:%s|%s]]' ${cycle[1]} $(wikebab <<< "$src") "$src"
else printf '[[%s:%s]]' ${cycle[1]} $(wikebab <<< "$src")
fi; exit 0
fi
replacer=${src%:*}
value=${src#*:}
place=${cycle[(ie)$replacer]}
length=${#cycle}
if (( place >= length )); then
next=1
else
(( next = place + 1 ))
fi
printf '[[%s:%s]]' ${cycle[$next]} $value
|