Instalator/Skrypt

Z Rainsted
Skocz do: nawigacji, wyszukiwania

Skrypt instalacyjny ma budowę pliku INI, znanego z Windows. Jest to plik tekstowy, w którym istotny jest podział na linie oraz ich kolejność. O znaczeniu poszczególnych linii informuje poprzedzająca je linia z nazwą sekcji, ujętą w nawiasy kwadratowe. Pozostałe linie na ogół mają postać "klucz=wartość", gdzie "klucz" oraz "wartość" są ciągami tekstowymi, przy czym "klucz" jest unikalną nazwą linii w sekcji.

Określone są następujące sekcje:

Sekcja [INFO]

Zawiera informacje opisowe o paczce.

pl=

Krótki opis paczki w języku polskim.

purpose=

Kod przeznaczenia paczki. Paczki dla MaSzyny powinny mieć tu podane eu07, dla ATS — ats, Train Driver 2 — td2.

release=

Data aktualizacji skryptu oraz jej autor.

reloadscn=

Jeśli po instalacji paczki wskazane jest przeładowanie listy scenerii, należy użyć reloadscn=1. Przeznaczone jest to dla paczek zawierających nowe scenariusze.

Sekcje językowe [PL] i [EN]

Rozszerzony opis paczki, linie wyjątkowo nie mają znaku "=". Sekcja zostanie wyświetlona zależnie od ustawień językowych w Rainsted.

Sekcja [VERIFY]

Sekcja zawiera listę plików, które powinny się znajdować na dysku, aby zainstalowany dodatek działał poprawnie. Po lewej stronie znaku "=" znajduje się nazwa pliku wraz ze względną ścieżką, po prawej oddzielone przecinkami: długość, CRC32 i data. Jeśli istotne jest tylko istnienie pliku o podanej nazwie, dane te zastępowane są gwiazdką (np. może nie być konieczne posiadanie ściśle określonej wersji pliku dźwiękowego).

W przypadku dodatków, które wymagają uprzedniego zainstalowania innych dodatków (zależności), po dacie może być podana nazwa archiwum, w którym plik się znajduje. Można w ten sposób uniknąć pobierania i wypakowania archiwów, których zawartość użytkownik już posiada.

Sekcja [ARCHIVES]

Lista paczek składających się na dodatek. Podobnie jak w przypadku plików, podana jest długość archiwum, CRC32 oraz data ostatnio zmienionego pliku (najpóźniejsza, daty katalogów są ignorowane). Paczki wypakowywane są wg podanej tu kolejności. W przypadku konfliktu wersji pliku paczkę najnowszą trzeba podać jako ostatnią (zwłaszcza przy wypakowywaniu metodą raw, która nadpisuje pliki bez pytania).

Sekcja [PREVIEW]

Lista obrazków podglądu, aktualnie obsługiwane są pierwsze dwa.

Sekcja [DOWNLOAD]

Lista linków do paczek. Na wypadek awarii serwera można podać wiele linków do jednej paczki. Po lewej stronie znaku równości znajduje się link, po prawej nazwa paczki, identyczna jak w sekcji [ARCHIVES].

Sekcja [TEXTURES.TXT]

Lista katalogów, w których należy utworzyć bądź uzupełnić pliki TEXTURES.TXT z informacjami o powiązaniu tekstur z modelami pojazdów. Zawartość tych plików pobierana jest ze wskazanych sekcji.

Sekcje typu [paczka.7z]

Sekcja o nazwie paczki określa metodę jej zainstalowania i opcjonalnie listę plików do przekopiowania. Metoda instalacji znajduje się w sekcji każdej paczki, w linijce z *=. Dla każdej paczki możliwy jest inny typ instalacji, jeśli na jeden dodatek składa się kilka paczek. Obecnie zdefiniowane metody instalacji (nie wszystkie są obsługiwane):

*=raw

Podstawowy typ rozpakowania — paczka jest wypakowywana bezpośrednio z nadpisaniem plików (w przyszłości będą dodatkowo możliwe zmiany nazw plików i usuwanie zbędnych po rozpakowaniu).

*=temp

Paczka rozpakowywana do tymczasowego katalogu, a wyszczególnione w sekcji pliki są następnie kopiowane pojedynczo (możliwe są zmiany nazw plików oraz struktury katalogów). Przykładowo paczka bez struktury katalogowej (tylko podkatalog Lxd2):

[Lxd2.rar]
*=temp
dynamic\pkp\Lxd2_v1\kabina.t3d=Lxd2\kabina.t3d
dynamic\pkp\Lxd2_v1\Lxd2-2.tga=Lxd2\Lxd2-2.tga
dynamic\pkp\Lxd2_v1\Lxd2.t3d=Lxd2\Lxd2.t3d
dynamic\pkp\Lxd2_v1\wózek4.tga=Lxd2\wózek4.tga
dynamic\pkp\Lxd2_v1\zderzak1.tga=Lxd2\zderzak1.tga
dynamic\pkp\Lxd2_v1\Lxd2.mmd=Lxd2\Lxd2.mmd
dynamic\pkp\Lxd2_v1\lxd2.tga=Lxd2\lxd2.tga
dynamic\pkp\Lxd2_v1\Lxd2.chk=Lxd2\Lxd2.chk
sounds\motor-Lxd2.wav=Lxd2\motor-Lxd2.wav

*=copy

Służy do kopiowania pliku, który nie został spakowany, np. wav, scn. Przykładowo uzupełnienie brakującego pliku dźwiękowego, pobranego luzem z serwera (bez spakowania):

[ignition-lxd2.wav]
*=copy
sounds\ignition-lxd2.wav=ignition-lxd2.wav

*=one

Wypakowywanie pojedynczych plików z paczki — z nadpisaniem.

*=miss

Wypakowywanie pojedynczych plików z paczki — bez nadpisania.

*=exe

(w planach) do paczek z instalatorem - uruchomienie instalatora (np. UHARC).

*=r_i

[w planach) uruchomienie innego skryptu instalacyjnego.

*=fix

(w planach) uruchomienie pliku poprawkowego,

Sekcja [DELETE]

Nieobsługiwana jeszcze sekcja, w której można wypisać pliki do usunięcia. Informacje o plikach wypisuje się podobnie jak w sekcji [VERIFY]. Usuwane będą pliki o konkretnej długości oraz sumie kontrolnej. Usuwane powinny być pliki, które zostały dodane w archiwum przypadkowo i są zbędne dla działania symulatora i programów pomocniczych, albo w przypadku umieszczenia pliku w nieodpowiednim podkatalogu.

Sekcja [SUBSET]

Sekcja obsługiwana od wersji 16.7.119.12079, przeznaczona do wybrania pomiędzy archiwum całościowym a aktualizującym, jeśli użytkownik posiada wcześniejszą wersję, a zawartość archiwum aktualizującego jest już włączona do archiwum całościowego. W sekcji [VERIFY] można podawać nazwy archiwów dla poszczególnych plików i mamy sytuację, że plik występuje w obu archiwach — dla wykonania jedynie aktualizacji wcześniejszej paczki można wskazać archiwum aktualizujące. Dotychczas w takim przypadku, jeśli brakowało pliku z odniesieniem do archiwum całościowego, pobrane i wypakowane były obydwa archiwa. Aby uniknąć zbędnego pobierania archiwum aktualizującego, można dodać informację, że jego pobieranie jest zbędne. Przykład:

[SUBSET]
linia61-160616.7z=linia61-f1606.7z
linia61-t1606c.7z=linia61-f1606.7z

W powyższym przykładzie archiwum linia61-f1606.7z (29MB) jest całościowym, a linia61-160616.7z (0.6MB) oraz linia61-t1606c.7z (1.1MB) aktualizującymi. Po wypakowaniu całościowego nie ma już potrzeby wypakowania aktualizujących, gdyż zawierają one te same pliki. Jeśli wykonanie skryptu wykaże niezgodność jedynie w zakresie plików powiązanych z archiwum aktualizującym, to jedynie ono zostanie pobrane i wypakowane. Jeśli niezgodność będzie również w zakresie plików powiązanych z archiwum całościowym, to w takim przypadku zostanie pobrane i wypakowane jedynie archiwum całościowe.