« get me outta code hell

Wikitag « acme « scripts - dotfiles - Miscellaneous configuration files of my personal use
about summary refs log tree commit diff
path: root/scripts/acme/Wikitag
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