/etc/env.d/HORROR

Tomasz Wittner twittner w o2.pl
Nie, 7 Sie 2005, 23:18:02 CEST


1.
/etc/profile:
# Put all of the variables as files in /etc/env.d/
# example:
# cat /etc/env.d/VARIABLE
# VARIABLE="value"
for i in /etc/env.d/* ; do
    NAME=`basename $i`
    case $NAME in
        *~ | *.bak | *.old | *.rpmnew | *.rpmsave )
            # nothing
            ;;
        * )
            if [ -r $i ]; then
                . $i; export $NAME
________________^^^^^^^^^^^^^^^^^^
            fi
            ;;
    esac
done

Jeżeli z pakietem przychodzi plik /etc/env.d/FOO o zawartości:
#FOO=""
to `set' (z zsh) pokazuje:
FOO=''
ksh:
FOO

Za to getenv("FOO") zwraca NULL, a programik:
#include <stdio.h>
extern char **environ;
int main()
{
    while (*environ)
    {
        printf("%s\n", *environ);
        environ++;
    }
    return 0;
}
nie pokazuje FOO

2. /etc/env.d/Plik
Plik musi mieć taką nazwę jak zmienna i zawierać tylko jedną zmienną - 
edytowanie czegoś takiego jest skrajnie niewygodne - w Debianie Sarge 
(ówcześnie jeszcze testing) tak był konfigurowany pure-ftpd - horror - ani 
wygodne to do przeglądania ani do edycji (to jest tylko wygodne dla 
developera przy robieniu pakietu np:
for X in CCACHE_DIR CCACHE_TEMPDIR CCACHE_LOGFILE CCACHE_PATH CCACHE_CC \ 		
CCACHE_PREFIX CCACHE_DISABLE CCACHE_READONLY CCACHE_CPP2 CCACHE_NOSTATS \ 
CCACHE_NLEVELS CCACHE_HARDLINK CCACHE_RECACHE CCACHE_UMASK CCACHE_HASHDIR \ 
CCACHE_UNIFY CCACHE_EXTENSION
do
        echo "#${X}=\"\"" > $RPM_BUILD_ROOT/etc/env.d/${X}
done

Miłego edytowania nastu plików (zamiast jednego).
-- 
Tomasz Wittner



Więcej informacji o liście dyskusyjnej pld-devel-pl