home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Magazin: Amiga-CD 2000 April & May
/
AMIGA_2000_04.iso
/
patches
/
redfix
/
redfix.lha
/
REDFiX
/
Install_REDFiX
< prev
next >
Wrap
Text File
|
1999-11-07
|
19KB
|
877 lines
; $VER: Install_REDFiX 1.5 (07.11.99) ® 1999 by Przemyslaw 'SENSEI' Gruchala
; Inicjalizacja
; Ustawienie wersji REDFiX'a jaka instalujemy.
(set #redfixversion 1)
(set #redfixrevision 5)
; Ustawiamy nazwe wersji REDFiX'a.
(set #redfixversionname ("%ld.%ld" #redfixversion #redfixrevision))
; Ustawienie minimalnego poziomu REDFiX'a. W wersji demo nie ma wyboru...
(set #redfixminlevel 3)
; Ustawienie wersji installera REDFiX'a.
(set #redfixinstallversionname "1.5")
(set #redfixinstalldate "07.11.99")
; Ustawienie minimalnej wersji systemu operacyjnego.
(set #kickstartminversion 36)
; Ustawienie nazwy minimalnej wersji systemu operacyjnego.
(set #kickstartminversionname "2.0")
; Pobranie aktualnej wersji systemu operacyjnego.
(set #kickstartversion (/ (getversion) 65536) )
; Zapamietanie poziomu uzytkownika.
(set #userlevel @user-level)
; Domyslna wersja angielska.
(set #languagetemp 0)
; Ustawiamy pytanie o wersje jezykowa po angielsku.
(set #selectlanguage "Select your language...")
; Ustawiamy tekst powitania po angielsku.
(set #welcome
(cat
"\n\n\n\nWelcome in the REDFiX v" #redfixversionname " installation script.\n\n\n"
"Copyright (c) 1999 by R.E.D. Group.\n\n\n"
"Install_REDFiX v" #redfixinstallversionname " (" #redfixinstalldate ") by Przemyslaw 'SENSEI' Gruchala.\n"
)
)
; Ustawiamy wersje angielska.
(if
(= @language "english")
(set #languagetemp 0)
)
; Ustawiamy wersje niemiecka.
(if
(= @language "deutsch")
(
(set #languagetemp 1)
; Ustawiamy pytanie o wersje jezykowa po niemiecku.
; (set #selectlanguage "Select your language...")
; Ustawiamy tekst powitania po niemiecku.
; (set #welcome
; (cat
; "\n\n\n\nWelcome in the REDFiX v" #redfixversionname " installation script.\n\n\n"
; "Copyright (c) 1999 by R.E.D. Group.\n\n\n"
; "Install_REDFiX v" #redfixinstallversionname " (" #redfixinstalldate ") by Przemyslaw 'SENSEI' Gruchala.\n"
; )
; )
)
)
; Ustawiamy wersje polska.
(if
(= @language "polski")
(
(set #languagetemp 2)
; Ustawiamy pytanie o wersje jezykowa po polsku.
(set #selectlanguage "Wybierz swój jëzyk...")
; Ustawiamy tekst powitania do polsku.
(set #welcome
(cat
"\n\n\n\nWitam w skrypcie instalacyjnym REDFiX'a v" #redfixversionname ".\n\n\n"
"Copyright (c) 1999 by R.E.D. Group.\n\n\n"
"Install_REDFiX v" #redfixinstallversionname " (" #redfixinstalldate ") by Przemysîaw 'SENSEI' Gruchaîa.\n"
)
)
)
)
; Poczatkowe powitanie.
(message #welcome (all))
(if
(>= #userlevel 2)
(
; Wybor jezyka w ktorym bedziemy informowani w installer'ze.
(set #language
(select
(askchoice
(prompt #selectlanguage)
(help @askoptions-help)
(choices
"English"
"Deutsch"
"Polski"
)
(default #languagetemp)
)
"English"
"Deutsch"
"Polski"
)
)
)
)
; Wersja angielska jest domyslna, dlatego najpierw wypelniamy nia wszystkie ciagi tekstowe.
(set #kickstartmsg
(cat
"REDFiX requires KickStart V" #kickstartminversion "+ (AmigaDOS v" #kickstartminversionname "+)."
)
)
(set #installermsg
(cat
"Install_REDFiX script requires Installer V43+.\n"
)
)
(set #imagefxpathmsg
(cat
"Select path where your have installed ImageFX..."
)
)
(set #imagefxnotexistmsg
(cat
"Sorry! No installed ImageFX found...\n\n"
"Please install ImageFX before you attempt installing the REDFiX.\n"
)
)
(set #whichcpumsg
(cat
"Which CPU version of the REDFiX modules do you want to install?\n"
"(Default is that you have in computer)"
)
)
(set #whichredfixlevelmsg
(cat
"Which REDFiX LEVEL do you want to install?\n"
"LEVEL1 - demo, in C.\n"
"LEVEL2 - optimized, in C.\n"
"LEVEL3 - optimized, in Assembler."
)
)
(set #selectmodulesmsg
(cat
"Select REDFiX modules to install..."
)
)
(set #helpselectmodulesmsg
(cat
"In this place you can select which modules of the REDFiX you find "
"interesting and you want install them.\n"
)
)
(set #selectbonusfilesmsg
(cat
"Select REDFiX bonus files to install..."
)
)
(set #helpselectbonusfilesmsg
(cat
"In this place you can select which bonus files of the REDFiX you find "
"interesting and you want install them.\n"
)
)
(set #bonusfilenotfoundmsg
(cat
"Sorry! I didn't find REDFiX bonus file.\n"
"We searched for:\n"
)
)
(set #modulenotfoundmsg
(cat
"Sorry! I didn't find REDFiX module in interesting you configuration.\n"
"We searched for:\n"
)
)
(set #copymodulemsg
(cat
"Should I copy module?"
)
)
(set #exitmsg
(cat
"\n\n\n\n\nEnjoy and feel the power of the REDFiX!!!\n"
)
)
; Wersja niemiecka.
(if
(= #language "Deutsch")
(
(message
(cat
"Sorry! Deutsch version currently not implemented!\n"
"English will be used...\n"
)
)
)
)
; Wersja Polska.
(if
(= #language "Polski")
(
(set #kickstartmsg
(cat
"REDFiX wymaga KickStart'u V" #kickstartminversion "+ (v" #kickstartminversionname "+)."
)
)
(set #installermsg
(cat
"Skrypt Install_REDFiX wymaga Installer'a w wersji V43+.\n"
)
)
(set #imagefxpathmsg
(cat
"Proszë wybraê katalog w którym masz zainstalowanego ImageFX'a..."
)
)
(set #imagefxnotexistmsg
(cat
"Przykro mi! Nie znalazîem zainstalowanego ImageFX'a...\n\n"
"Proszë zainstalowaê ImageFX'a przed próbâ instalacji REDFiX'a.\n"
)
)
(set #whichcpumsg
(cat
"Dla jakiego procesora chciaî(a)byô zainstalowaê moduîy REDFiX'a?\n"
"(Domyôlnie taki jaki masz w komputerze)"
)
)
(set #whichredfixlevelmsg
(cat
"Który poziom REDFiX'a chcesz zainstalowaê?\n"
"LEVEL1 - demo, w C.\n"
"LEVEL2 - zoptymalizowany, w C.\n"
"LEVEL3 - zoptymalizowany, w Assembler'ze."
)
)
(set #selectmodulesmsg
(cat
"Proszë wybraê moduîy REDFiX'a jakie chcesz zainstalowaê..."
)
)
(set #helpselectmodulesmsg
(cat
"W tym miejscu moûesz wybraê jakie moduîy REDFiX'a interesujâ Cië "
"i chcesz je zainstalowaê.\n"
)
)
(set #selectbonusfilesmsg
(cat
"Proszë wybraê pliki bonusowe REDFiX'a jakie chcesz zainstalowaê..."
)
)
(set #helpselectbonusfilesmsg
(cat
"W tym miejscu moûesz wybraê jakie pliki bonusowe REDFiX'a "
"interesujâ Cië i chcesz je zainstalowaê.\n"
)
)
(set #bonusfilenotfoundmsg
(cat
"Przykro mi! Niestety nie znalazîem pliku bonusowego.\n"
"Poszukiwany byî plik:\n"
)
)
(set #modulenotfoundmsg
(cat
"Przykro mi! Niestety nie znalazîem moduîu w interesujâcej Cië konfiguracji.\n"
"Poszukiwany byî moduî:\n"
)
)
(set #copymodulemsg
(cat
"Czy skopiowaê moduî?"
)
)
(set #exitmsg
(cat
"\n\n\n\n\nMiîego uûywania i poczuj moc REDFiX'a!!!\n"
)
)
)
)
; Wlasciwy skrypt instalacyjny.
(complete 0)
; Sprawdzenie czy mamy odpowiednia wersje systemu operacyjnego.
(if (< #kickstartversion #kickstartminversion)
(abort #kickstartmsg)
)
; Sprawdzenie wersji Installer'a. Wymagamy V42.9. Nie chcialo mi sie sprawdzac revision ;)
(if (< (/ @installer-version 65536) 43)
(abort #installermsg)
)
;
; Etap 1:
; - Dobranie najblizszej sciezki z ImageFX'em.
; - Wyswietlenie requester'a w ktorym mozna wybrac wlasciwa wersje ImageFX'a.
; - Sprawdzenie czy w podanej sciezce znajduje sie zainstalowany ImageFX.
; - Odczyt wersji ImageFX'a i obliczenie przyrostka dla modulow wymagajacych odpowiedniej wersji ImageFX'a.
;
; Ustawienie sciezki do ImageFX'a.
(set #imagefxpath "")
; Sprawdzenie czy ImageFX: istnieje.
(if
(exists "ImageFX:" (noreq))
(set #imagefxpath "ImageFX:")
)
; Sprawdzenie czy ImageFX2: istnieje.
(if
(exists "ImageFX2:" (noreq))
(set #imagefxpath "ImageFX2:")
)
; Sprawdzenie czy ImageFX3: istnieje.
(if
(exists "ImageFX3:" (noreq))
(set #imagefxpath "ImageFX3:")
)
; Sprawdzenie czy ImageFX4: istnieje.
(if
(exists "ImageFX4:" (noreq))
(set #imagefxpath "ImageFX4:")
)
; Spytanie sie o sciezke dostepu do ImageFX'a.
(set #imagefxpath
(askdir
(prompt #imagefxpathmsg)
(help @askdir-help)
(default #imagefxpath)
)
)
(complete 10)
; Sprawdzamy czy ImageFX jest zainstalowany.
(if
(not
(exists
(tackon #imagefxpath "ImageFX" (noreq))
)
)
(abort #imagefxnotexistmsg)
)
(complete 20)
; Skopiowanie sciezki do ImageFX jako standardowa.
(set @default-dest #imagefxpath)
; Pobranie wersji ImageFX'a dla ktorej powinnismy instalowac REDFiX'a.
(set #imagefxversion (/ (getversion (tackon #imagefxpath "ImageFX")) 65536))
; Przeliczamy wersje ImageFX'a na przyrostek.
;(set #imagefxversionsuffix
; (select #imagefxversion
; ""
; "V1"
; "V2"
; "V3"
; )
;)
; Przeliczamy wersje ImageFX'a na przyrostek.
; Uzywamy nowego sposobu przeliczania (v1.5+) ktory obsluzy kazda wersje ImageFX'a.
(set #imagefxversionsuffix
("V%ld" #imagefxversion)
)
(complete 30)
;
; Etap 2:
; - Pobranie wersji procesora.
; - Przeliczenie typu procesora (zgodnego z askchoice).
; - Przeliczenie procesora PPC.
; - Spytanie sie uzytkownika o wlasciwa wersje procesora.
;
; Pobranie wersji procesora.
(set #cpu (database "CPU"))
; Domyslna wartosc.
(set #cputype 0)
; Przeliczamy typ procesora na wersje.
(if
(= #cpu 68000)
(set #cputype 0)
)
(if
(= #cpu 68010)
(set #cputype 0)
)
(if
(= #cpu 68020)
(set #cputype 1)
)
(if
(= #cpu 68030)
(set #cputype 2)
)
(if
(= #cpu 68040)
(set #cputype 3)
)
(if
(= #cpu 68060)
(set #cputype 4)
)
; PPC 603e/604e maja kody 5,6.
(if
(>= #userlevel 2)
(
; Pytamy sie uzytkownika pod jaki procesor chce zainstalowac moduly.
; Domyslnie taki jak ma w komputerze.
(set #cputype
(askchoice
(prompt #whichcpumsg)
(help @askchoice-help)
(choices
"MC 68000+"
"MC 68020+"
"MC 68030+"
"MC 68040+"
"MC 68060"
; "PPC 603e+/604e+, MC 68040+"
; "PPC 603e+/604e+, MC 68060"
)
(default #cputype)
)
)
)
)
(complete 40)
; Pytamy sie uzytkownika jaki level chce zainstalowac.
; Domyslnie taki jaki zdefiniowany w naglowku installer'a.
(if
(>= #userlevel 2)
(
(set #redfixminlevel
(+
(askchoice
(prompt #whichredfixlevelmsg)
(help @askchoice-help)
(choices
"LEVEL1"
"LEVEL2"
"LEVEL3"
)
(default
(- #redfixminlevel 1)
)
)
1)
)
)
)
(complete 50)
(if
(>= #userlevel 2)
(
; Pytamy sie ktore moduly uzytkownik chce zainstalowac.
; Domyslnie instalowane sa wszystkie moduly.
(set #redfixmodules
(askoptions
(prompt #selectmodulesmsg)
(help #helpselectmodulesmsg)
(choices
; REDFiX v0.9+
"Modules/Preview/REDFiX_Standard"
"Hooks/REDFiX_AutoContrast"
"Hooks/REDFiX_LowPass"
; REDFiX v1.5+
"Modules/Loaders/REDFiX_NewIcon"
"Modules/Savers/REDFiX_NewIcon"
"Hooks/REDFiX_Swirl"
; REDFiX v1.7+
; "Modules/Loaders/REDFiX_XFA"
; "Modules/Savers/REDFiX_XFA"
; "Hooks/REDFiX_Pulsar"
)
(default %111111111)
)
)
)
(set #redfixmodules %111111111)
)
(complete 60)
(if
(>= #userlevel 2)
(
; Pytamy sie ktore pliki bonusowe uzytkownik chce zainstalowac.
; Domyslnie instalowane sa wszystkie pliki bonusowe.
(set #redfixbonusfiles
(askoptions
(prompt #selectbonusfilesmsg)
(help #helpselectbonusfilesmsg)
(choices
; REDFiX v1.5+
"Rexx/AutoFX/ColorToCMAP.ifx"
"Rexx/AutoFX/ColorToCMAP.ifx.pre"
"Rexx/AutoFX/ColorToCMAP_Best.ifx"
"Rexx/AutoFX/SaveBufferAs_NewIcon.ifx"
"Rexx/AutoFX/SaveBufferAs_NewIcon.ifx.pre"
"Rexx/AutoFX/SaveRenderedAs_NewIcon.ifx"
"Rexx/AutoFX/SaveRenderedAs_NewIcon.ifx.pre"
"Rexx/AutoFX/Scale_NewIcon.ifx"
"Storage/AutoFX/CmdSets/ConvertCMAPBestToNewIcon"
"Storage/AutoFX/CmdSets/ConvertCMAPToNewIcon"
"Storage/AutoFX/CmdSets/ConvertRenderedToNewIcon"
; REDFiX v1.7+
)
(default %11111111111)
)
)
)
(set #redfixbonusfiles %11111111111)
)
; Ustawiamy licznik plikow bonusowych.
(set #actualbonus 0)
; Petla kopiujaca pliki bonusowe.
; Kopiowane sa tylko te pliki ktore chce uzytkownik. Jesli plik nie istnieje
; to pojawia sie komunikat o bledzie. Potrzebna sciezka dostepu jest tworzona.
(while
(set #actualbonusname
(select #actualbonus
; REDFiX v1.5+
"Rexx/AutoFX/ColorToCMAP.ifx"
"Rexx/AutoFX/ColorToCMAP.ifx.pre"
"Rexx/AutoFX/ColorToCMAP_Best.ifx"
"Rexx/AutoFX/SaveBufferAs_NewIcon.ifx"
"Rexx/AutoFX/SaveBufferAs_NewIcon.ifx.pre"
"Rexx/AutoFX/SaveRenderedAs_NewIcon.ifx"
"Rexx/AutoFX/SaveRenderedAs_NewIcon.ifx.pre"
"Rexx/AutoFX/Scale_NewIcon.ifx"
"Storage/AutoFX/CmdSets/ConvertCMAPBestToNewIcon"
"Storage/AutoFX/CmdSets/ConvertCMAPToNewIcon"
"Storage/AutoFX/CmdSets/ConvertRenderedToNewIcon"
; REDFiX v1.7+
""
)
)
(
; Sprawdzamy czy uzytkownik chce zainstalowac ten plik bonusowy.
(if
(IN #redfixbonusfiles #actualbonus)
(
(if
(exists #actualbonusname (noreq))
(
; Czy istnieje katalog docelowy? Jesli nie to stworzmy go!
(if
(not
(exists
(tackon #imagefxpath (pathonly #actualbonusname))
(noreq)
)
)
(
(makedir
(tackon #imagefxpath (pathonly #actualbonusname))
(infos)
)
)
)
; Upewniamy sie czy katalog docelowy istnieje.
(if
(exists
(tackon #imagefxpath (pathonly #actualbonusname))
(noreq)
)
(
; Skopiowanie pliku bonusowego (jesli nowszy).
; Sorry, ze nie uzylem copylib'a, ale robil "dziwne" rzeczy...
; Majac modul 0.93 traktowal go jako nowszego od 1.0...
(copyfiles
(prompt #copybonusmsg)
(help @copyfiles-help)
(source #actualbonusname)
(dest
(tackon #imagefxpath (pathonly #actualbonusname))
)
(confirm "expert")
(optional "askuser" "nofail")
)
)
)
)
; Nie znalezlismy modulu wiec grzecznie o tym poinformujemy.
(message
(cat #bonusfilenotfoundmsg #actualbonusname)
)
)
)
)
; Zwiekszamy licznik plikow bonusowych
(set #actualbonus (+ #actualbonus 1))
)
)
(complete 90)
; Ustawiamy licznik modulow.
(set #actualmodule 0)
; Petla kopiujaca wlasciwe moduly do katalogu z ImageFX'em.
; Zostawilem kod obslugujacy rozne wersje modulow w zaleznosci od wersji ImageFX'a
; moze sie jeszcze przydac... ;) (Elf sygnalizowal problemy z tworzeniem modulow
; ponizej V3.2 pod PowerPC... Zobaczymy co przyniesie przyszlosc... :).
(while
(set #actualmodulename
(select #actualmodule
; REDFiX v0.9+
"0Modules/Preview/REDFiX_Standard"
"0Hooks/REDFiX_AutoContrast"
"0Hooks/REDFiX_LowPass"
; REDFiX v1.5+
"0Modules/Loaders/REDFiX_NewIcon"
"0Modules/Savers/REDFiX_NewIcon"
"0Hooks/REDFiX_Swirl"
; REDFiX v1.7+
; "0Modules/Loaders/REDFiX_XFA"
; "0Modules/Savers/REDFiX_XFA"
; "0Hooks/REDFiX_Pulsar"
""
)
)
(
; Sprawdzamy czy uzytkownik chce zainstalowac ten modul.
(if
(IN #redfixmodules #actualmodule)
(
; Ustawienie nazwy modulu do instalacji.
(set #redfixmodulename
(substr #actualmodulename 1 (- (strlen #actualmodulename) 1))
)
; Sprawdzenie czy modul ma specjalne wersje dla ImageFX'a.
(if
(=
(substr #actualmodulename 0 1)
"1"
)
(set #imagefxversionsuffixtemp #imagefxversionsuffix)
(set #imagefxversionsuffixtemp "")
)
; Skasowanie znacznika znalezienia modulu w petli procesora.
(set #foundbestmodule FALSE)
; Ustawiamy wersje procesora.
(set #cputypetemp #cputype)
(while
(not #foundbestmodule)
(
; Ustawienie przyrostka procesora.
(set #cpusuffix
(select #cputypetemp
".000"
".020"
".030"
".040"
".060"
; ".PPC040"
; ".PPC060"
)
)
; Skasowanie znacznika znalezienia modulu w petli poziomu.
(set #foundbestmodule1 FALSE)
; Ustawienie poziomu.
(set #redfixlevel #redfixminlevel)
(while
(not #foundbestmodule1)
(
; Ustawienie przyrostka poziomu.
(set #redfixlevelsuffix
(select #redfixlevel
""
"L1"
"L2"
"L3"
)
)
; Jesli chcesz to mozesz sobie odrem'owac ta linie i przygladac sie jak przebiega
; proces szukania modulu w odpowiedniej konfiguracji... Enjoy!
; (message (cat #redfixmodulename #cpusuffix #redfixlevelsuffix #imagefxversionsuffixtemp))
(if
(exists
(cat #redfixmodulename #cpusuffix #redfixlevelsuffix #imagefxversionsuffixtemp)
)
(
(set #redfixmodulename
(cat #redfixmodulename #cpusuffix #redfixlevelsuffix #imagefxversionsuffixtemp)
)
(set #foundbestmodule1 TRUE)
(set #foundbestmodule TRUE)
)
)
; Zmniejszenie licznika poziomu. Zeby wyjsc z petli to troche oszukujemy...
(if
(> #redfixlevel 1)
(set #redfixlevel (- #redfixlevel 1))
(set #foundbestmodule1 TRUE)
)
)
)
; Zmniejszenie licznika procesora. Patrz wyzej.
(if
(> #cputypetemp 0)
(set #cputypetemp (- #cputypetemp 1))
(set #foundbestmodule TRUE)
)
)
)
; Czy znalezlismy modul w odpowiedniej konfiguracji?
(if
(exists #redfixmodulename (noreq))
(
; (message (cat "Source: " #redfixmodulename "\nDest: " (tackon #imagefxpath (pathonly #redfixmodulename)) "\nName: " (fileonly (substr #actualmodulename 1 (- (strlen #actualmodulename) 1)))))
; Czy istnieje katalog docelowy? Jesli nie to stworzmy go!
(if
(not
(exists
(tackon #imagefxpath (pathonly #redfixmodulename))
(noreq)
)
)
(
(makedir
(tackon #imagefxpath (pathonly #redfixmodulename))
(infos)
)
)
)
; Upewniamy sie czy katalog docelowy istnieje.
(if
(exists
(tackon #imagefxpath (pathonly #redfixmodulename))
(noreq)
)
(
; Skopiowanie modulu (jesli nowszy).
; Sorry, ze nie uzylem copylib'a, ale robil "dziwne" rzeczy...
; Majac modul 0.93 traktowal go jako nowszego od 1.0...
(copyfiles
(prompt #copymodulemsg)
(help @copyfiles-help)
(source #redfixmodulename)
(dest
(tackon #imagefxpath (pathonly #redfixmodulename))
)
(newname
(fileonly (substr #actualmodulename 1 (- (strlen #actualmodulename) 1)))
)
; Eksperci musza potwierdzic czy chca kopiowac. Zapomnialem tego odrem'owac w <1.5.
(confirm "expert")
(optional "askuser" "nofail")
)
)
)
)
(
; Nie znalezlismy modulu wiec grzecznie o tym poinformujemy.
(message
(cat #modulenotfoundmsg #redfixmodulename)
)
)
)
)
)
; Zwiekszamy licznik modulow.
(set #actualmodule (+ #actualmodule 1))
)
)
(complete 100)
(exit #exitmsg (quiet))