[unattended pld deploy procedure]

Michal Moskal malekith w pld.org.pl
Śro, 18 Kwi 2001, 11:21:17 CEST


On Sun, Apr 15, 2001 at 10:40:42PM +0200, Paweł Kołodziej wrote:
> Dnia Fri, Apr 06, 2001 at 03:16:46PM +0200, Michal Moskal napisał(a):
> > On Fri, Apr 06, 2001 at 01:06:30PM +0200, Paweł Kołodziej wrote:
> > > > Konfig może raczej:
> > > > 
> > > > mta {
> > > >  ...
> > > > }
> > > > 
> > > > niz
> > > > 
> > > > [mta]
> > > > ...
> > > > 
> > > > sekcje z {} moza zagniezdzac, i widać wyraźnie gdzie się kończą. Konfliba
> > > > bym w to nie mieszał, nie potrzebujemy całej jego funkcjonalności, a space
> > > > is tight :>
> > > 
> > > OK.
> >  
> > Jest pomysł żeby XML | XML-like.
> > 
> > > Moze lpeiej zrobic to bardziej ogolnie ?
> > > Np tak: modol reenderujacy konfiga do XXX (np do qmaial) to osobny program w
> > > czymkolwiek(TM). Dostaje jako zmienne srodowsikowe wszystkie potrzebne 
> > > argumenty (np. jak user ustawil DOMAIN=dupa, to ten "modol" ma taka zmienna
> > > srodowiskowa (treba jeszcze uwzglenic podzial na sekcje). 
> > 
> > Problem: co jeśli jakaś sekcja występuje 2 lub więcej razy?
> > Bo namespace się da zrobic na $ENV (mozna np. SEC:XX:VAR albo cos)
> > ale jak zrobic
> >  <aliases>
> >   <alias>
> >    <name>root</name>
> >    <user>me</user>
> >   </alias>
> >   <alias>
> >    <name>r00t</name>
> >    <user>me</user>
> >   </alias>
> >  </aliases> ?
> 
> Orzeciez to prawie dokładnie ten przykład który podałem! Któryś z nas
> czegoś nie rozumie. Teraz trzweba tylko ustalić który.
> w mojej konwencji skrypt pluje:
> 
> name=root
> user=me
> +parsse aliases.alias
> name=r00t
> user=me
> +parse alias
> +parse aliases.aliases
> 
> i template jakiś taki:
> <!-- BEGIN: aliases -->
> <aliases>
>  	<!-- BEGIN: alais -->
> 	<alias>
> 		<name>{NAME}</name>
> 		<user>{USER}</user>
> 	</alias>
> 	<!-- END: alias -->
> </aliases>
> <!-- END: aliases>
 
Hmm.... zaraz. Skrypt ma dostać env na wejście, i wypluć konfig?
Czy ma gdzieś dostać XML? Bo jeśli ma dostać env (żadnego xml,
ewentualnie env generowane, na podstawie xml, przez jakiś zewnartrzny
program) to nie może wypluć tego co napisałeć (getenv("name") i
getenv("user") ???).

Natomiast jeśli to ma być parsowane z xml, to wszystko ok. Template
pewnie by pozwoliło na wygenerowanie jakiegoś textu pomiędzy jedną
parą user/name a drugą (te +.. to debug info??)

> > > Moze jeszcze wyjasnie jak wyglada template (na podstwaie xtempalte ktorego
> > > prawie na codzien uzywam)
> > 
> > Nie do konca rozumiem, ale łapie idee.
> 
> :) fajnie. Jak nie masz "dostepu" do xtemplate, to pogldaj fast template
> (lub prostsze html2 template) z perla

Ok. Oblookam to wszystko i spróboje połączyć idee -- pisanie skryptu w
Czymkolwiek(TM), ma pewne wady. Jeśli cokolwiek miałobybyć sh (które ma
tę zaletę, w przeciwieństwie, do np. świetnie nadającego się do tego
perla, że jest wszędzie), to to by była rzeźba. XML nie da się łatwo
przekazać przez zmienne środowiskowe. Text-processing w C ma swoje
zalety, ale ja już widzę te stada chętnych do pisania generatorów
konfigów w C... Dlatego chciałem wepchnąć tu jakiś specjalizowany język.

Chociaż może zrobienie jakiegoś prostego narzędzia do parsowania xml'a
z wyjściem na env nie byłoby takie głupie? Hmm... coś w rodzaju:

/path/to/file:
<root>
 <sec1>
  <xxx>
   <v1>1</v1>
   <v2>2</v2>
   <x>
    <a>fds</a>
    <b>sadf</b>
   </x>
  </xxx>
 </sec1>
 <sec2>
  ....
 </sec2>
</root>

a:

xmlparse /path/to/file root/sec1/xxx

pisze cos okolo:

v1="1"
v2="2"
x="
    <a>fds</a>
    <b>sadf</b>
"

robi się na tym eval... hm...

No nie wiem... /me nie lubi sh, ale zgadza się, że inni mogą bardziej
lubić sh niż jezyk wymyślony przez /me :>

-- 
: Michal ``,/\/\,       '' Moskal    | |            : GCS {C,UL}++++$
:          |    |alekith      @    |)|(| . org . pl : {E--, W, w-,M}-
:                                  |                : {b,e>+}++ !tv h
: Current project:  http://aleph-0.dhs.org/ywindow/ : PLD Team member



Więcej informacji o liście dyskusyjnej pld-installer