#!/bin/bash
# skip strongbash header
set -eu

### --help size2number Info: конвертирует размер в байты
### --help size2number Info: можно запускать в сабшеле
### --help size2number Usage: size2number SIZE
### --help size2number Usage:     SIZE - размер с префиксом K/M/G, либо без префикса (т.е. байты)
### --help size2number Example: bytes="$(size2number 10G)"
### --help size2number Example: echo "10G in bytes equals $bytes"
### --help size2number Example:   -> 10G in bytes equals 10737418240
size2number(){
	set -e
	local size="$1" num

	size="${size^^}"
	num="${size//[^0-9]/}"

	case "$size" in
	*G)
		echo "$((num * 1024 * 1024 * 1024))"
		;;
	*M)
		echo "$((num * 1024 * 1024))"
		;;
	*K)
		echo "$((num * 1024))"
		;;
	*)
		echo "$size"
		;;
	esac

	return 0
}
