Nl/Terrasync: Difference between revisions

Jump to navigation Jump to search
2,884 bytes added ,  17 December 2017
no edit summary
No edit summary
No edit summary
Line 126: Line 126:
== terrasync.py ==
== terrasync.py ==
Eerst en vooral: je vind het nu hier op zijn nieuwe locatie: https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/scripts/python/terrasync.py
Eerst en vooral: je vind het nu hier op zijn nieuwe locatie: https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/scripts/python/terrasync.py
Het script is nu in staat om een complete mirror van de scenery data, ook wel bekend als terrasync scenery of gewoon terrascenery, te doenloaden.
Het script is nu in staat om een complete mirror van de scenery data, ook wel bekend als terrasync scenery of gewoon terrascenery, te doenloaden.


Line 133: Line 134:


=== Hoe werkt het ===
=== Hoe werkt het ===
De HTTP terrascenery server bevat alle bekende bestanden die nodig zijn voor scenery, georganiseerd in de bekende directory structuur (/Modellen, /Objects, /Terrain en /Airports) met al hun subdirectories. De inhoud van de map /Models bijvoorbeeld vind je hier: http://flightgear.sourceforge.net/scenery/Models/.dirindex
De HTTP terrascenery server bevat alle bekende bestanden die nodig zijn voor scenery, georganiseerd in de bekende directory-structuur (/Modellen, /Objects, /Terrain en /Airports) met al hun subdirectories. De inhoud van de map /Models bijvoorbeeld vind je hier: http://flightgear.sourceforge.net/scenery/Models/.  Iedere map bevat een (verborgen) bestand genaamd .dirindex (bijv.  http://flightgear.sourceforge.net/scenery/Models/.dirindex). dat de inhoud van die map beschrijft door het overzicht van alle bestanden, submappen en checksums van de de bestanden en hun submappen'. dirindex files. Het terrasync. py script doet (vereenvoudigd) het volgende:
 
* a) download het bestand bij de root (hoogste niveau) van de scenery-url (http://flightgear.sourceforge.net/scenery/.dirindex)
* b) gaat een submap in die in de. dirindex is opgenomen
* c) vergelijkt de sha1sum van de in de lijst opgenomen bestanden met de lokale kopie en downloadt bestanden indien ze niet overeenkomen
* d) met de in de lijst opgenomen subdirectories en herhaalt deze stappen voor de volgende mappen als bedoeld in b).
 
Zelfs als alle scenerybestanden op de server aanwezig zijn, zijn er in eerste instantie nog ca. 40.000. dirindexbestanden die ontbreken op jouw harde schijf en het downloaden zal uren duren. Om de procedure te versnellen, zodra je alle. dirindex bestanden lokaal hebt, kun je terrasync. py uitvoeren met de optie --quick. Dit zal terrasync. py vertellen om de berekende sha1sum van elk. dirindex bestand op jouw harde schijf te vergelijken met dat in de entry in de bovenliggende  directories. dirindex. Als je een up-to-date mirror gebruikt zal  deze vrij snel zijn omdat alleen de root. dirindex gedownload moet worden. Latere updates met de optie --quick  zullen ook zeer snel zijn, omdat alleen de bijgewerkte bestanden worden gedownload evenals de. dirindex bestanden van de bovenliggende mappen tot aan de hoofdmap.
 
Tot nu toe hebben we bestanden aan jouw harde schijf toegevoegd, maar hoe zit het met bestanden die van de server zijn verwijderd? Het script benadert ze meestal niet  tenzij u aan de opdrachtregel de optie --remove-orphan toevoegt. Door dit te doen, vraagt u terrasync. py om alle bestanden (niet mappen) te verwijderen die in een subdirectory bestaan maar niet in het corresponderende. dirindex worden genoemd.
 
Als je niet alles in jouw huidige werkdirectory wilt downloaden, voeg dan --target=/map/bestand toe aan jouw opdrachtregel. Dit beschrijft vrijwel alles wat terrasync. py doet. Hieronder volgen enkele voorbeelden hoe je het kunt gebruiken:
 
<syntaxhighlight lang="bash">
# fetch everything from the master repository server into /home/joe/fg/scenery, keep orphan files, (re-)download every .dirindex file
terrasync.py --target=/home/joe/fg/scenery
 
# just pull in changes, quick and lean for subsequent updates
terrasync.py --target=/home/joe/fg/scenery --quick
 
# run a mirror, only keep those files listed on the server
terrasync.py --target=/home/joe/fg/scenery --quick --remove-orphan
 
# use another server to pull the data, not the sourceforge master
terrasync.py --target=/home/joe/fg/scenery --url= http://someserver.org/otherscenery
</syntaxhighlight>
 
 




539

edits

Navigation menu