kategoria: Programy
[#1] DOpus Magellan: wypalanie katalogu z guzika (4/10)
Mam katalog ze zdjęciami np. rok 2012. Jako że zdjęcia są już posegregowane, potrzebny mi po prostu guzik, który to sprawdzi czy jest płytka do wypalenia w napędzia, i po prostu ją wypali nadając jej nazwę taką jaką ma katalog. Bez żadnego GUI-a.

Tak to sobie wymarzyłem :)

S.s.t. (subiektywny stopień trudności) 4/10. ;)

Ostatnia aktualizacja: 05.08.2013 21:42:05 przez Dopuser
[#2] Re: DOpus Magellan: wypalanie katalogu z guzika (4/10)

@Dopuser, post #1

cafe



Ostatnia aktualizacja: 09.08.2013 00:40:29 przez Dopuser
[#3] Re: DOpus Magellan: wypalanie katalogu z guzika (4/10)

@Dopuser, post #1

Powiedziałbym, że SST = 2/10

DVD Tools i tak na moje kaprawe oko wchodzące w jego skład polecenia:

mkisofs -U -iso-level 3 -V {VOLUME_NAME} -o T:image.iso {PATH}
dvdrecord -dao speed=2 T:image.iso


Co robią - poczytaj sobie w dokumentacji.
[#4] Re: DOpus Magellan: wypalanie katalogu z guzika (4/10)

@APC74, post #3

Powiedziałbym, że SST = 2/10

Nie zgodzę się ;) SST= 2/10 to podstawowa konfiguracja filetype'u, tj. rozpoznanie i proste przypisanie jakiegoś narzędzia. Dałem SST = 4/10 dlatego, że aby rozwiązać ten problem potrzebna jest znajomość zewnętrznych aplikacji amigowych, podobnie jak to miało miejsce w przypadku konwersji na .7z.

Poza tym rozwiązanie nie spełnia wymogów:

mkisofs -U -iso-level 3 -V {VOLUME_NAME} -o T:image.iso {PATH}
dvdrecord -dao speed=2 T:image.iso

Gdzie tam widzisz nazwę wypalonej płytki identycznej z nazwą wypalanego katalogu, ha? Tak, że rozwiązanie niekompletne. Poza tym skrypt powinien również sprawdzić/poprosić o umieszczenie płytki w napędzie w razie jej braku. Nie wspominam już o sprawdzeniu wielkości image.iso czy wypalanego folderu, tak żeby nie przerosły ograniczeń amigowych co do wielkości pliku. Myślę więc, że jednak SST=4/10 ;)
[#5] Re: DOpus Magellan: wypalanie katalogu z guzika (4/10)

@APC74, post #3

Powiedziałbym, że SST = 2/10

Nie zgodzę się ;) SST= 2/10 to podstawowa konfiguracja filetype'u, tj. rozpoznanie i proste przypisanie jakiegoś narzędzia. Dałem SST = 4/10 dlatego, że aby rozwiązać ten problem potrzebna jest znajomość zewnętrznych aplikacji amigowych, podobnie jak to miało miejsce w przypadku konwersji na .7z.

Poza tym rozwiązanie nie spełnia wymogów:

mkisofs -U -iso-level 3 -V {VOLUME_NAME} -o T:image.iso {PATH}
dvdrecord -dao speed=2 T:image.iso

Gdzie tam widzisz nazwę wypalonej płytki identycznej z nazwą wypalanego katalogu, ha? Tak, że rozwiązanie niekompletne. Poza tym skrypt powinien również sprawdzić/poprosić o umieszczenie płytki w napędzie w razie jej braku. Nie wspominam już o sprawdzeniu wielkości wypalanego folderu, tak żeby nie przerosła ograniczeń amigowych co do wielkości pliku. Myślę więc, że jednak SST=4/10 ;)
[#6] Re: DOpus Magellan: wypalanie katalogu z guzika (4/10)

@Dopuser, post #5

Nazwa dla płyty jest podawana przy tworzeniu ISO (-V {VOLUME_NAME}), bo przecież w ISO się ją zapisuje.
Obsługę błędu (brak płyty) powinien załatwić dvdrecord - na pewno ma opcję device/drive check.
Samą obsługę błędu można załatwić na wiele sposobów - podam Ci 2. W pierwszym przypadku dostaniesz komunikat o błędzie, w drugim skrypt będzie cicho czekał na włożenie płyty.
Wait 5 - średnio tyle sekund potrzebuje napęd na wykrycie i zgłoszenie czystej płyty.
Co powinno być dokładnie wstawione w dvdrecord (sprawdź napęd) - sprawdź w dokumentacji.
Badanie rozmiaru katalogu ma nawet DOpus 2 (mogę się mylić - to stare dzieje, ale na pewno ma ją 4), więc tym bardziej powinien mieć to Magellan. Jeżeli nie znasz polecenia Magellana do badania rozmiaru, to użyj polecenia ADOsu GetSize na początku skryptu.

GetSize {KATALOG} TERSE >ENV:GetCatalogSize
IF $GetCatalogSize GT 681574400 ;dla 650MB
Eval $GetCatalogSize / 1048576 >ENV:EvalMB
RequestChoice TITLE "Błąd wypalania" BODY "Katalog za duży*n(ponad $EvalMB MB)" OK >NIL:
SKIP END
ENDIF
mkisofs -U -iso-level 3 -V {VOLUME_NAME} -o T:image.iso {PATH}
dvdrecord (sprawdź napęd)
IF WARN
RequestChoice TITLE "Błąd wypalania" BODY "Brak płyty! Wsadź płytę i naciśnij OK" OK >NIL:
Wait 5
ENDIF
dvdrecord speed=2 T:image.iso
LAB END
============================================
================== LUB =====================
============================================
GetSize {KATALOG} TERSE >ENV:GetCatalogSize
IF $GetCatalogSize GT 681574400 ;dla 650MB
Eval $GetCatalogSize / 1048576 >ENV:EvalMB
RequestChoice TITLE "Błąd wypalania" BODY "Katalog za duży*n(ponad $EvalMB MB)" OK >NIL:
SKIP END
ENDIF
mkisofs -U -iso-level 3 -V {VOLUME_NAME} -o T:image.iso {PATH}
LAB DevChk
dvdrecord (sprawdź napęd)
IF WARN
Wait 5
SKIP DevChk BACK
ENDIF
dvdrecord speed=2 T:image.iso
LAB END


Ostatnia aktualizacja: 11.08.2013 09:58:53 przez APC74
[#7] Re: DOpus Magellan: wypalanie katalogu z guzika (4/10)

@APC74, post #6

Szybki jesteś ;), sprawdzę później.
[#8] Re: DOpus Magellan: wypalanie katalogu z guzika (4/10)

@APC74, post #6

Ładnie, ładnie...

Ogólnie wygląda o.k. OK. Porównam z moim rozwiązaniem i dam znać.

Btw: skąd bierze Volume_Name? Powinien zasugerować/założyć nazwę taką jak wypalany katalog, myślę.

Odezwę się po południu.
[#9] Re: DOpus Magellan: wypalanie katalogu z guzika (4/10)

@Dopuser, post #8

Na szybkiego, tak wygląda moja funkcja napisana z 5-6 lat temu, która z grubsza miała cel jak opisany w zadaniu. Myślę, że działała :)

Function :
AmigaDOS GetSize {f} TERSE >ENV:o
Command FinishSection
Command Confirm Dirsize: {vo} bytes, Please insert blank CD...
AmigaDOS #Stack 1000000
AmigaDOS mkisofs -U -print-size {fu} >ENV:ISOSize
Command FinishSection
AmigaDOS Run mkisofs -U -sysid AmigaOS -V {ou} {f} >PIPE:dane
AmigaDOS dvdrecord dev=scsi.device:0,0,0 -v -gui tsize={vISOSize}s - <PIPE:dane

Flags : Output to window
CD source
Window close button

Teraz znikam do popołudnia.

Ostatnia aktualizacja: 11.08.2013 11:26:31 przez Dopuser
[#10] Re: DOpus Magellan: wypalanie katalogu z guzika (4/10)

@Dopuser, post #8

Dublet.

Ostatnia aktualizacja: 11.08.2013 11:24:29 przez Dopuser
[#11] Re: DOpus Magellan: wypalanie katalogu z guzika (4/10)

@Dopuser, post #8

skąd bierze Volume_Name?
Jak to skąd - Magellan ma mu ją przekazać (nazwa aktualnego katalogu - funkcja wewnętrzna lub "Arexxowa", nie pamiętam).
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem