Ankieta

Jaki powinien być format plików instalacyjnych do paczek

BAT (Windows)
7 (29.2%)
bash (Linux)
1 (4.2%)
INI (Windows)
13 (54.2%)
XML
1 (4.2%)
inny (napisz jaki)
2 (8.3%)
zgodny z plikiem poprawek
0 (0%)

Głosów w sumie: 22

Autor Wątek:  Skrypty (pliki) instalacyjne do paczek  (Przeczytany 6755 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6355
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 389
Skrypty (pliki) instalacyjne do paczek
« dnia: 28 Marca 2008, 00:32:10 »
Przy obecnym stanie i ilości dodatków, instalowanie paczek jest kłopotliwe. Nie będę wnikać w przyczyny, chcę poradzić sobie ze skutkami za pomocą stworzonego przeze mnie automatu.

Problemy z paczkami pojawiają się następujące:
 - paczka jest niepełna (brakuje jakiś plików do kompletu, bo autor zapomniał),
 - paczka bazuje na zawartości innej paczki (np. sceneria korzysta z budynków innej scenerii),
 - struktura katalogów w paczce nie odpowiada strukturze Symulatora.

Może przykład. Pojawiła się sceneria wąskotorowa. Potrzebna do niej jest lokomotywa Lxd2. Załóżmy, że program ładujący (Starter) stwierdza, że tej lokomotywy nie da się zastąpić inną, ale można ją pobrać z serwera. Paczka z tą lokomotywą jest pod adresem http://mamut.mysza.eu.org/~krzysiek626/Lxd2.rar. Załóżmy że Starter pobiera sobie paczkę do podkatalogu download.

To, co dalej może zrobić, to rozpakować ją do podkatalogu tymczasowego temp programem 7-Zip, wykonując polecenie7z.exe x download\Lxd2.rar -otemp
Powstaje coś takiego:7-Zip 4.57  Copyright (c) 1999-2007 Igor Pavlov  2007-12-06

Processing archive: download\Lxd2.rar

Extracting  Lxd2\kabina.t3d
Extracting  Lxd2\Lxd2-2.tga
Extracting  Lxd2\Lxd2.t3d
Extracting  Lxd2\motor-Lxd2.wav
Extracting  Lxd2\wózek4.tga
Extracting  Lxd2\zderzak1.tga
Extracting  Lxd2\Lxd2.mmd
Extracting  Lxd2\lxd2.tga
Extracting  Lxd2\Lxd2.chk
Extracting  Lxd2\t.chk
Extracting  Lxd2

Everything is Ok

Folders: 1
Files: 10
Size:       3388331
Compressed: 443718
No i teraz zaczyna się problem, bo coś trzeba zrobić z tymi plikami i program musi wiedzieć dokładnie co. Otóż, trzeba w podkatalogu dynamic\pkp utworzyć katalog Lxd2, do niego przekopiować wszystkie pliki, oprócz motor-Lxd2.wav, który powinien się znaleźć w sounds.

Aby program poradził sobie z tą paczką, przydało by się napisać skrypt (plik) instalacyjny. W wersji MS-DOS, wyglądał by on tak:
Kod: (Lxd2.rar.BAT) [Zaznacz]
rem Instalator paczki typu BAT
md dynamic\pkp\Lxd2
move temp\Lxd2\kabina.t3d dynamic\pkp\Lxd2
move temp\Lxd2\Lxd2-2.tga dynamic\pkp\Lxd2
move temp\Lxd2\Lxd2.t3d dynamic\pkp\Lxd2
move temp\Lxd2\motor-Lxd2.wav sounds
move temp\Lxd2\wózek4.tga dynamic\pkp\Lxd2
move temp\Lxd2\zderzak1.tga dynamic\pkp\Lxd2
move temp\Lxd2\Lxd2.mmd dynamic\pkp\Lxd2
move temp\Lxd2\lxd2.tga dynamic\pkp\Lxd2
move temp\Lxd2\Lxd2.chk dynamic\pkp\Lxd2
del temp\Lxd2\*.*
rd temp\Lxd2
Problemy w tym przypadku są następujące:
 - nie jest określone, co ma się dziać w przypadku nadpisywania istniejącego pliku - program powinien o to zapytać użytkownika, albo serwer,
 - nie da się określić, czy instalacja przebiegła poprawnie (tzn. zweryfikować, czy odpowiednie pliki znalazły się w odpowiednich miejscach),
 - nie bardzo jest jak sprawdzić, czy lokomotywa jest kompletna (nie jest, brakuje pliku ignition-Lxd2.wav - trzeba by jakoś zaznaczyć, że trzeba go dociągnąć osobno).

Wniosek mój jest taki, że pliki BAT nie bardzo nadają się na skrypty instalacyjne. Inna metoda, to plik INI, np. taki:
Kod: (Lxd2.INI) [Zaznacz]
[VERIFY]
dynamic/PKP/Lxd2/kabina.t3d=198599,C7CD260F,2005-06-10 14:44:30
dynamic/PKP/Lxd2/Lxd2-2.tga=786450,F792CE94,2004-10-12 22:42:48
dynamic/PKP/Lxd2/Lxd2.t3d=976726,1182F075,2004-10-13 10:13:16
dynamic/PKP/Lxd2/wózek4.tga=262162,39ED61AB,2004-09-01 15:13:56
dynamic/PKP/Lxd2/zderzak1.tga=262162,915E6E51,2004-09-29 21:07:40
dynamic/PKP/Lxd2/Lxd2.mmd=4599,B2E41CBF,2005-04-01 10:57:44
dynamic/PKP/Lxd2/lxd2.tga=786450,78729DE9,2004-10-04 22:09:32
dynamic/PKP/Lxd2/Lxd2.chk=2029,3542AC81,2005-09-30 22:43:58
sounds/motor-Lxd2.wav=107114,C1DADB0A,2004-08-29 23:15:40
sounds/ignition-lxd2.wav=58510,B5600DC5,*

[ARCHIVES]
Lxd2.rar=443718,71587B90,2005-09-30 22:43:58
ignition-lxd2.wav=58510,B5600DC5,*

[DOWNLOAD]
Lxd2.rar=http://mamut.mysza.eu.org/~krzysiek626/Lxd2.rar
ignition-lxd2.wav=http://members.lycos.co.uk/drezyna/Wmc/ignition-lxd2.wav

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

[ignition-lxd2.wav]
sounds\ignition-lxd2.wav=ignition-lxd2.wav
Jak widać daje to już większe możliwości. Jest możliwość weryfikacji poprawności istniejących plików, kompletności instalacji, wskazania powiązanych archiwów oraz linków do nich.  Można by jeszcze pomyśleć, jak dodać opcje na pliki (np. w sytuacji, gdy istnieje kilka równych jakościowo dźwięków, żeby można sobie było wybrać któryś z nich).

Nie piszę na razie o XML - chciałbym unikać tego póki się da, bo jego przetwarzanie jest dużo bardziej skomplikowane, niż podzielenie pliku tekstowego na linie. Poza tym, na obecnym etapie rozwoju Instalatora, bardziej chodzi o określenie funkcjonalności takiego skryptu, niż o format jego zapisu.

Jest jeszcze taka możliwość, żeby połączyć skrypty instalacyjne ze skryptami poprawek, o których pisałem wcześniej. Wtedy skrypt instalacyjny po rozpakowaniu archiwów i dociągnięciu brakujących plików, byłby w stanie skorygować zauważone błędy. Jednak miałoby to pewną wadę - plik instalacyjny do paczki powinien być tylko jeden, natomiast plików poprawkowych może być wiele i mogą pełnić one różne funkcje.

Chodzi też o to, żeby autor paczki potrafił sam napisać taki plik instalacyjny.
« Ostatnia zmiana: 28 Marca 2008, 15:49:20 wysłana przez Ra »
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline Winger

  • Administrator
  • Wiadomości: 1466
    • Zobacz profil
    • http://www.winger.eu07.pl
  • Otrzymane polubienia: 24
Odp: Skrypty (pliki) instalacyjne do paczek
« Odpowiedź #1 dnia: 28 Marca 2008, 22:06:53 »
Ja tam mysle ze ini, ale koniecznie kazda dodawana paczka musi byc sprawdzona/zatwierdzona nim stanie sie publicznie dostepna.
Pozdrawiam,
Winger

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6355
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 389
Odp: Skrypty (pliki) instalacyjne do paczek
« Odpowiedź #2 dnia: 02 Grudnia 2008, 15:14:07 »
OK, format już jest ustalony, skrypty działają. Teraz pojawia się następująca kwestia: mają one rozszerzenie INI, a przez to nie są jakoś specjalnie rozpoznawane przez Windows. Gdyby wymyślić jakieś unikalne rozszerzenie, można by je powiązać z instalatorem. Wtedy np. po kliknięciu na link zainstaluj na stronie internetowej, otwierał by się instalator.

I tu jeszcze jedna uwaga: instalator ma charakter uniwersalny, tzn. teoretycznie można nim instalować różne inne paczki, nie tylko do MaSzyny.

Zarezerwowane rozszerzenia można sprawdzać np. pod adresem:
http://www.liutilities.com/products/winbackup/filextlibrary/

Proszę o nadsyłanie propozycji.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline Marcin1992

  • Wiadomości: 327
  • Nokia Modder
    • Zobacz profil
    • Modyfikacje telefonów Nokia - www.NokiaHacking.pl
  • Otrzymane polubienia: 0
Odp: Skrypty (pliki) instalacyjne do paczek
« Odpowiedź #3 dnia: 02 Grudnia 2008, 15:34:44 »
Proponuję następujące rozszerzenia:

*.maszyna
*.eu07
*.424
*.minst (maszyna installer)
*.mset (maszyna setup)
*.madd (maszyna addon)

Offline Poscikk

  • Wiadomości: 668
    • Zobacz profil
  • Otrzymane polubienia: 1
Odp: Skrypty (pliki) instalacyjne do paczek
« Odpowiedź #4 dnia: 02 Grudnia 2008, 19:14:04 »
*.minst lub ".madd wydają się najsensowniejsze.

Za sterami 138 godzin 28 minut :)

Offline El Mecánico

  • Wiadomości: 1067
  • Dawniej El Driver
    • Zobacz profil
    • Stowarzyszenie POLARIS - OPP
  • Otrzymane polubienia: 2
Odp: Skrypty (pliki) instalacyjne do paczek
« Odpowiedź #5 dnia: 02 Grudnia 2008, 19:20:17 »
*.mpack Maszyna PACkage (Pakiet Maszyny) wydaje się być uniwersalniejszy.
www.polaris.org.pl
www.ciemneniebo.pl
MaSzyna_LD w trakcie tworzenia...

Offline SM31-113

  • ZbanowanyZbanowany
  • Wiadomości: 448
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: Skrypty (pliki) instalacyjne do paczek
« Odpowiedź #6 dnia: 02 Grudnia 2008, 19:30:30 »
Myślę że *.minst, *.mset, *.madd *.424 będą najlepsze. *.eu07 odpada bo początkujący będą mylić z EU07.exe
« Ostatnia zmiana: 03 Grudnia 2008, 09:19:30 wysłana przez SM31-113 »

Offline osiem

  • Wiadomości: 10
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: Skrypty (pliki) instalacyjne do paczek
« Odpowiedź #7 dnia: 03 Grudnia 2008, 19:02:21 »
RAIF

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6355
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 389
Odp: Skrypty (pliki) instalacyjne do paczek
« Odpowiedź #8 dnia: 29 Grudnia 2008, 13:09:51 »
Ja jednak wolę trzyliterowe... Wymyśliłem R_I, które z niczym się nie kojarzy, a jest zbliżone ideologicznie do modułów pewnych formularzy... Takoż spróbuję połączyć to rozszerzenie z moim programem...
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni