builder a distfiles

Radoslaw Zielinski radek at karnet.pl
Thu Jun 19 21:36:11 CEST 2003


Andrzej Krzysztofowicz <ankry at green.mif.pg.gda.pl> [19-06-2003 00:22]:
> Sygnalizowalem juz problemy przy uzywaniu distfiles i plikach o zmieniajacej
> sie zawartosci bez zmiany nazwy pliku, ale jakos nikt sie tym nie
> zainteresowal. Opisze wiec krotko o co chodzi.
[...]

Właśnie się na to naciąłem przy zshguide.pdf.

> Komentarze? Inne propozycje?

Bardziej skomplikowane rozwiązanie: builder mógłby pamiętać, jaki plik
ściągał.

Przykładowo: w $TMPDIR lub ~/.builder/ tworzymy katalog builder_sources,
w którym przed rozpoczęciem ściągania umieszczamy symlink w postaci
$(plik)_$(md5) -> %_sourcedir/$(plik).  Po zakończeniu ściągania,
dowiązanie usuwamy.  Przy kolejnym uruchomieniu buildera, jeśli plik
w %_sourcedir istnieje, sprawdzamy, czy jego suma kontrolna zgadza
się z tą ze speca.  Jeśli nie, to sprawdzamy, czy w builder_sources
jest dowiązanie z interesującą nas sumą -- jeśli tak (czyli ściąganie
zostało przerwane), używamy -c, jeśli nie (plik został zmieniony) --
kasujemy i ściągamy ponownie.

Pseudokod^H^H^Hperl:

  chdir %_sourcedir
  if (-e $plik) {
      if (md5sum($plik) eq $suma_ze_speca) {
          # jest OK
      }
      # tu przydałoby się sprawdzać, czy symlink rzeczywiście wskazuje
      # tam, gdzie ma wskazywać -- ktoś mógł przedefiniować _sourcedir
      elsif (-e ~/.builder/builder_sources/${plik}_$suma_ze_speca) {
          wget -c $URL/$plik
      }
      else {
          rm $plik
          wget $URL/$plik
      }
  }
  else {
      wget $URL/$plik
  }

-- 
Radosław Zieliński <radek at karnet.pl>
[ GPG key: http://radek.karnet.pl/ ]

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: </mailman/pipermail/pld-devel-pl/attachments/20030619/49e16a9b/attachment.sig>


More information about the pld-devel-pl mailing list