[rfc] HOME-ETC.txt [by³o: Re: Wolna amerykanka w PLD?]

Witold Filipczyk witekfl w poczta.gazeta.pl
Wto, 8 Kwi 2003, 21:11:31 CEST


On Tue, Apr 08, 2003 at 03:45:24PM +0200, Jakub Bogusz wrote:
> On Tue, Apr 08, 2003 at 03:23:52PM +0200, Tomek Orzechowski wrote:
> > [08 kwiecieñ, 2003] Michal Moskal napisa³:
> > >IMHO CONFIG_DIR powinno byæ bezwzglêdne. To ¿aden problem tak to ustawiæ
> > >w ~/.*profile, a patche s± znacznie prostsze, np. wystarczy czêsto
> > >zmiana getenv("HOME") na getenv("CONFIG_DIR") ? getenv("CONFIG_DIR") : 
> > >getenv("HOME").
> > 
> > Zmiana CONFIG_DIR z wzglêdnego na bezwzglêdne nie powinna byæ dla
> > u¿ytkownika du¿ym problemem. Po prostu zamieni
> > export CONFIG_DIR=etc na
> > export CINFIG_DIR=$HOME/etc
> 
> Albo (to trochê skomplikowa³oby poprawki, ale za³atwi³oby problem
> zgodno¶ci nowych i starych wersji) je¶li pierwszym znakiem $CONFIG_DIR
> jest '/', to ¶cie¿ka bezwzglêdna, wpp. wzglêdem $HOME.

HOME te¿ mo¿e kto¶ ustawiæ jako zmienn± wzglêdn± i nigdzie nie jest
sprawdzane czy zaczyna siê od '/'.
Ca³a dyskusja powinna siê sprowadziæ do tego jak nazwaæ tê zmienn±.
Bo to, ¿e powinna byæ bezwzglêdna jest oczywiste.
Podstawowym argumentem za jest to, ¿e ³atwiej robiæ patche.
W robieniu patcha te¿ nie ma du¿ej filozofii.

Schemat

W pliku jest mniej wiêcej tak

home = getenv("HOME");  // pobierz o informacjê o HOME
sprintf(buf, "...")     // utwórz nazwê pliku konfiguracyjnego
open                    // otwórz plik

to trzeba zamieniæ na:

...dir = getenv("...DIR");
if (...dir) {
  sprintf(...)
} else {
  home = getenv("HOME");
  sprintf(...)
}
open

W porz±dnie napisanych programach tak w³a¶nie by by³o.
S± niestety jeszcze takie programy, ¿e pliki konfiguracyjne nazywaj±
"~/co¶tam" i '~' jest rozwijana.
Jest z tym trochê roboty, ale to te¿ jest ³atwe.

Je¶li program tworzy katalog $HOME, gdy go nie ma, to i spaczowany
program powinien tworzyæ $...DIR.
I to wszystko.

Sprawa home_etc by³a poruszana wielokrotnie, ale nic z tego nie wynik³o.
Zacznijcie od ustalenia nazwy tej zmiennej ;-)

Nie ma sensu komentowaæ paczy etc_dir. Wystarczy ustaliæ nazwê zmiennej
i pozamieniaæ ETC_DIR na ustalon± zmienn±.

-- 
Witold Filipczyk
<witekfl w poczta.gazeta.pl>



Wiêcej informacji o li¶cie dyskusyjnej pld-devel-pl