Brian Harring wrote:
>On Sun, Oct 02, 2005 at 11:07:13PM +0200, Francesco R wrote:
>
>
>>The ready to cut ebuild at the bottom print it's environment (variable
>>and functions) to a bunch of files into /var/tmp/fakebuild/.
>>May be useful for who want to have a look at "what" and "when" is
>>avaible during the various emerge phases (but not limited to).
>>print_env() {
>> local fakebuild_output_dir="/var/tmp/fakebuild"
>> mkdir -p "${fakebuild_output_dir}" || die
>>
>> [[ -z "${fakebuild_progr}" ]] && fakebuild_progr=100
>> fakebuild_progr=$(( $fakebuild_progr +1 ))
>> export fakebuild_progr
>>
>> local fakebuild_ext="${1}.${fakebuild_progr}"
>>
>> # not sorting, break multiline vars
>> einfo "${fakebuild_output_dir}/env_${fakebuild_ext}"
>> env \
>> &> "${fakebuild_output_dir}/env_${fakebuild_ext}"
>>
>> # Remove egrep and sort to see the source of every fx
>> einfo "${fakebuild_output_dir}/fxlist_${fakebuild_ext}"
>> typeset \
>> | egrep '^\b.* \(\)' \
>> | sort \
>> &> "${fakebuild_output_dir}/fxlist_${fakebuild_ext}"
>>}
>>
>>
>
>This won't work as you expect. Env is a binary, it only gets
>the exported env.
>
>
>
Got the point (maybe), "typeset" is a Bash built-in.
The first part of the "typeset" output command give the variable list
*and* it's different from the output of "env" binary.
The output is different in two ways, first the vars are differently
formatted, missing apices " ' " for example.
env also is missing all .bashrc defined vars (speaking of a normal
environment not of a portage/emerge one).
==> the "env" command should be replaced by
typeset &> tmpfile
tmpfile | grep -B10000 "$(egrep "^\b.* \(\)" tmpfile | head -n 1)" |
head -n '-1'
(basically the output of typeset cutted at first function)
>Elaborate on the "what and when" bit also, since the env that's dumped
>to ebuild.sh varies depending on a lot of things.
>~harring
>
>
>
The environment is changing between the various predefined functions and
in the global scope of an ebuild, at the moment only for vars, not for
functions.
example of variable vars are:
SANDBOX_*
PORTAGE_RESTRICT
TMP
EBUILD_PHASE
TMPDIR
PWORKDIR
DISTCC_DIR
LD_PRELOAD
All variables that must stay readonly, or not readed at all, inside an
ebuild but may explain at the human that's writing one, what's happening
and when.
better ?
--
[email protected] mailing list