On Wed, Aug 31, 2011 at 3:14 AM, Michał Górny <mgo...@gentoo.org> wrote:
> On Wed, 32 Aug 2011 10:57:08 +0200
> Tomáš Chvátal <scarab...@gentoo.org> wrote:
>
>> Good pointer is that we should probably check if the
>> MERGE_TYPE=binary and not check-reqs ram and disk_build in that case.
>> But there is slight problem how to do it in older eapis.
>
> We simply don't. Life is hard :P.
>
>> Also Michal if you want to have that DISK array thingu there could
>> you write a patch?
>
> Well, I don't see really a need for that if we're still keeping old
> vars.
>
> Now about the code:
>
> * I don't see units mentioned nor described in @DESCRIPTION or vars,
>
>> EXPORT_FUNCTIONS pkg_setup
>> case "${EAPI:-0}" in
>>       0|1|2|3) ;;
>>       4) EXPORT_FUNCTIONS pkg_pretend ;;
>>       *) die "EAPI=${EAPI} is not supported" ;;
>> esac
>
> Either you export them (which breaks backwards compat) or require users
> to call them (your @CODE@). Don't do both, it's confusing.
>
>> check-reqs_get_megs() {
>>       debug-print-function ${FUNCNAME} "$@"
>>
>>       [[ -z ${1} ]] && die "Usage: ${FUNCNAME} [size]"
>>
>>       local unit=${1#${1%?}}
>>       local size
>
> local unit=${1:(-1)}
>
>>
>>       # Temporary workaround for unset units.
>>       # Backcompat.
>>       if [[ "${unit//*([[:digit:]])}" ]]; then
>>               # the unit itself was set ; strip it out
>>               size=${1%\%}
>>       else
>>               size=${1}
>>               unit="M"
>>       fi
>
> local size=${1%[GMT]}
>
>>
>>       case ${unit} in
>>               [gG]) echo $((1024 * ${size})) ;;
>>               [mM]) echo ${size} ;;
>>               [tT]) echo $((1024 * 1024 * ${size})) ;;

Also it is my understanding that all tokens in $(()) go through
expansion, so for instance:

$(( 1024 * 1024 * size ))

and

$(( 1024 * 1024 * ${size})) are equivalent.

Is this only in bash4?
Do we have a style preference?

>
> I'd just go with capital letters there.
>
>                [0-9]) echo ${size} ;;
>
> (you can add that to the 'M' cond)
>
>>               *)
>>                       die "${FUNCNAME}: Unknown unit size: ${unit}"
>
> Size unit. Again.
>
>>               ;;
>>       esac
>> }
>
>>               [gG]) echo "Gigabytes" ;;
>>               [mM]) echo "Megabytes" ;;
>>               [tT]) echo "Terabytes" ;;
>
> gibibytes, mebibytes, tebibytes.
>
>> # @FUNCTION: check-reqs_memory
>> # @DESCRIPTION:
>> # Internal function that checks space on the RAM.
>
> 'space on the RAM' sounds bad :P.
>
>>       check-reqs_start_phase \
>>               $(check-reqs_get_number ${size}) \
>>               $(check-reqs_get_unit ${size}) \
>>               "RAM"
>
> Move the number/unit split to _start_phase()?
>
>>               actual_memory=$(sed -n -e '/MemTotal:/s/^[^:]*:
>> *\([0-9]\+\) kB/\1/p' \ /proc/meminfo)
>
> awk '/MemTotal/ { print $2 }' /proc/meminfo
>
>>       space_megs=$(df -Pm ${1} 2>/dev/null | sed -n \
>>               '$s/\(\S\+\s\+\)\{3\}\([0-9]\+\).*/\2/p' 2>/dev/null)
>
> OMFG.
>
> space_megs=$(df -Pm "${1}" 2>/dev/null | awk 'FNR == 2 {print $4}')
>
> I guess.
>
>> # @FUNCTION: check-reqs_unsattisfied
>
> unsatisfied.
>
>>       # @DEAULT_UNSET
>
> @INTERNAL.
>
> --
> Best regards,
> Michał Górny
>

Reply via email to