Dnia 28 grudnia 2015 16:27:43 CET, Justin Lecher <j...@gentoo.org> napisał(a): >Using kbi as base unit for calculation as linux and bsd only have -k as >common option
It's 'kibibyte', or KiB in short. > >Signed-off-by: Justin Lecher <j...@gentoo.org> >--- > eclass/check-reqs.eclass | 25 +++++++++++++------------ > 1 file changed, 13 insertions(+), 12 deletions(-) > >diff --git a/eclass/check-reqs.eclass b/eclass/check-reqs.eclass >index 138bfec..a649693 100644 >--- a/eclass/check-reqs.eclass >+++ b/eclass/check-reqs.eclass >@@ -159,12 +159,12 @@ check-reqs_run() { > fi > } > >-# @FUNCTION: check-reqs_get_mebibytes >+# @FUNCTION: check-reqs_get_kbibytes > # @INTERNAL > # @DESCRIPTION: >-# Internal function that returns number in mebibytes. >-# Returns 1024 for 1G or 1048576 for 1T. >-check-reqs_get_mebibytes() { >+# Internal function that returns number in kbibytes. >+# Returns 1024**2 for 1G or 1024**3 for 1T. >+check-reqs_get_kbibytes() { > debug-print-function ${FUNCNAME} "$@" > > [[ -z ${1} ]] && die "Usage: ${FUNCNAME} [size]" >@@ -173,9 +173,10 @@ check-reqs_get_mebibytes() { > local size=${1%[GMT]} > > case ${unit} in >- G) echo $((1024 * size)) ;; >- [M0-9]) echo ${size} ;; >- T) echo $((1024 * 1024 * size)) ;; >+ G) echo $((1024 * 1024 * size)) ;; >+ M) echo $((1024 * size)) ;; >+ T) echo $((1024 * 1024 * 1024 * size)) ;; >+ [0-9]) echo $((1024 * size)) ;; > *) > die "${FUNCNAME}: Unknown unit: ${unit}" > ;; >@@ -275,7 +276,7 @@ check-reqs_memory() { > actual_memory=$(echo $actual_memory | sed -e > 's/^[^:=]*[:=]//' ) > fi > if [[ -n ${actual_memory} ]] ; then >- if [[ ${actual_memory} -lt $((1024 * $(check-reqs_get_mebibytes >${size}))) ]] ; then >+ if [[ ${actual_memory} -lt $(check-reqs_get_kbibytes ${size}) >]] ; >then > eend 1 > check-reqs_unsatisfied \ > ${size} \ >@@ -300,16 +301,16 @@ check-reqs_disk() { > > local path=${1} > local size=${2} >- local space_megs >+ local space_kbi > > check-reqs_start_phase \ > ${size} \ > "disk space at \"${path}\"" > >- space_megs=$(df -Pm "${1}" 2>/dev/null | awk 'FNR == 2 {print $4}') >+ space_kbi=$(df -Pk "${1}" 2>/dev/null | awk 'FNR == 2 {print $4}') > >- if [[ $? == 0 && -n ${space_megs} ]] ; then >- if [[ ${space_megs} -lt $(check-reqs_get_mebibytes ${size}) ]] ; >then >+ if [[ $? == 0 && -n ${space_kbi} ]] ; then >+ if [[ ${space_kbi} -lt $(check-reqs_get_kbibytes ${size}) ]] ; >then > eend 1 > check-reqs_unsatisfied \ > ${size} \ -- Best regards, Michał Górny (by phone)