summaryrefslogtreecommitdiff
path: root/decperc
blob: 3eff460007aeb767023611c89a6868fd5f6b947e (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
#!/usr/bin/zsh

dec_into_perc() {
	dec="$1"
	# duplicating code, don't care
	if echo "$dec" | grep -qE '^(-?[0-9]+\.[0-9]+|-?[0-9]|\.[0-9]+)$'; then
		percent="$(echo "$dec * 100" | bc -l)"
		echo "${percent}%"
	else
		echo "Error: not a decimal number" >&2
		exit 1
	fi
}

perc_into_dec() {
	perc="$1"
	# duplicating code, don't care
	if echo "$perc" | grep -qE '^(-?[0-9]+\.[0-9]+%|-?[0-9]+%|\.[0-9]+%)$'; then
		dec="{$perc%?}"
		dec="$(echo "$dec / 100" | bc -l)"
		echo "$dec"
	else
		echo "Error: not a percent" >&2
		exit 1
	fi
}

echo "$1" | grep -qE '^(-?[0-9]+\.[0-9]+|-?[0-9]|\.[0-9]+|-?[0-9]+\.[0-9]+%|-?[0-9]+%|\.[0-9]+%)$' &&
	len=${#1} &&
	[[ ${1:len-1:1} == "%" ]] && perc_into_dec "$1" || dec_into_perc "$1"