Redo on D.J. Bernsteinin kehittämä tiedostogeneroinnin automaatiojärjestelmä, ja sellaisenaan vaihtoehto esim. Unixin [make]-komennolle. Oikeastaan se ei ole kovin kummoinen järjestelmä, vaan rajapinta/avuke, jolla skriptit voivat kutsua toisiaan ehdollisesti, eli vain siinä tapauksessa, että seuraavaa skriptiä "tarvitsee" kutsua. Sille on tehty viimeisten kymmenen vuoden aikana ''neljä'' toteutusta: Alan Grosskurthin sh-toteutus, Avery Pennarunin [Python]-toteutus, Jonathan de Boyne Bollardin C++-toteutus ja Nils Dagsson Moskoppin sh-toteutus. Huhhuh.
redo vaikuttaa hienolta, mutta vähän ärsyttää se, että konfiguraatiotiedostoja on niin paljon, ja sitten olen aika varma, että konfiguraatiotiedostojen suorittaminen sh:lla johtaa samanlaisiin tehokkuusongelmiin kuin esim. sysvinit-skriptien kanssa. Toisaalta, kaiken voi tehdä yhdessä default.do-tiedostossa, mutta sitten siitä tulee riippuvuus kaikille ohjelmille. Redossakaan ei ole mitään keinoa päätellä, onko jokin tiedoston ''osa'' vanhentunut eikä tapaa lisätä riippuvuutta vain tiedoston osalle.
redo-stamp (joka on osa redo-ohjelmaa) yrittää tehdä sen, mistä olen haikaillut maken suhteen, eli sillä voi toteuttaa omia sääntöjä sille, onko jokin kohde vanhentunut vai ei. redo-stamp hoitaa tämän kyllä vähän oudosti päin: kohde rakennetaan joka tapauksessa ja sitten katsotaan, päivittyikö se oikeasti. Jos päivittyi, kaikki siitä ''riippuvat'' kohteet vanhentuvat. Eli jos haluaa tutkia jonkin lähteen päivittymistä, sille pitää tehdä pseudokohde, jonka "tuottaminen" käyttää redo-stampia vertaamaan vanhaa ja uutta sisältöä.
[kategoria: työkalut]