netsurf/amiga/dist/Install

406 lines
8.7 KiB
Plaintext
Executable File

; Installation script for NetSurf
(procedure p_setmimetype #type #mimetype
(transcript "Setting MIME Type " #mimetype " for default " #type " icon")
(set #fullpath (cat "ENVARC:Sys/def_" #type))
(tooltype
(prompt "Setting MIME type")
(help @tooltype-help)
(dest #fullpath)
(settooltype "MIMETYPE" #mimetype)
)
)
(procedure p_failedsobjs
(if #failedsobjs
(message "The following shared objects failed to copy. These will be updated on next reboot.\n\n" #failedsobjs)
)
)
(procedure p_schedulesobj #sobj
(transcript "Scheduling update of " #sobj " for next reboot")
(set #failedsobjs (cat #failedsobjs "\n" #sobj))
(makedir "SObjs:so-installer")
(copyfiles
(source (tackon "SObjs" #sobj))
(dest "SObjs:so-installer")
)
(startup "Shared object installer"
(prompt "Adding commands to user-startup to schedule copy of " #sobj " on next reboot")
(help @startup-help)
(command "if EXISTS SObjs:so-installer\n")
(command " copy SObjs:so-installer SObjs: CLONE FORCE QUIET\n")
(command " delete SObjs:so-installer ALL FORCE QUIET\n")
(command "endif\n")
)
)
(procedure p_comparesobj #sobj
(set #same 0)
(set #sobj-version (getversion (tackon "SObjs/" #sobj)))
(if (= #sobj-version 0)
(
(if (exists (tackon "SObjs:" #sobj))
(
(set #file-newer (earlier (tackon "SObjs:" #sobj) (tackon "SObjs/" #sobj)))
(set #old-size (getsize (tackon "SObjs:" #sobj)))
(set #new-size (getsize (tackon "SObjs/" #sobj)))
(if (AND (= #old-size #new-size) (= #file-newer 0)) (set #same 1))
)
)
)
; else if version info is available
(
(set #sobj-oldversion (getversion (tackon "SObjs:" #sobj)))
(if (<= #sobj-version #sobj-oldversion) (set #same 1))
)
)
)
(procedure p_copysobj #sobj
(set #sobj-version (getversion (tackon "SObjs/" #sobj)))
(if (= #sobj-version 0)
(
(transcript "Date compare " #sobj)
(if (exists (tackon "SObjs:" #sobj))
(
(set #file-newer (earlier (tackon "SObjs:" #sobj) (tackon "SObjs/" #sobj)))
(if (= #file-newer 0)
(
(set #newer-text "has an older datestamp")
)
;else
(
(set #newer-text "has a newer datestamp")
)
)
(set #old-size (getsize (tackon "SObjs:" #sobj)))
(set #new-size (getsize (tackon "SObjs/" #sobj)))
(if (AND (= #old-size #new-size) (= #file-newer 0))
(
(set #copy 0)
)
;else
(
(if (OR (= @user-level 2) (AND (= @user-level 1) (<> #file-newer 0)))
; Expert users are always prompted
; Average users are prompted if the file trying to be copied is newer
; Novice users are never prompted
; This is roughly equivalent to (copylib (confirm))
; No prompting occurs if the destination does not exist (silent copy)
; or the files are the same size and the one being copied isn't newer (don't copy)
(
(set #copy
(askbool
(prompt "Copying " #sobj "...\n\n"
"Version to install: " #new-size " bytes\n"
"Version currently installed: " #old-size " bytes\n\n"
"The file to copy " #newer-text)
(help @askbool-help)
(default #file-newer)
(choices "Proceed with copy" "Skip this part")
)
)
)
;else
(
(set #copy #file-newer)
)
)
)
)
)
; else if dest file does not exist
(
(set #copy 1)
)
)
(if (<> #copy 0)
(
(if (<> #AutoInstall 1)
(
(copyfiles
(prompt "Copying " #sobj "...")
(help @copyfiles-help)
(source (tackon "SObjs/" #sobj))
(dest "SObjs:")
(optional "nofail" "force")
)
)
;else
(
(run "CopyStore SObjs/" #sobj " SObjs:")
)
)
(p_comparesobj #sobj)
(if (= #same 0)
(
(p_schedulesobj #sobj)
)
)
)
)
)
; else if version info is available
(
(if (<> #AutoInstall 1)
(
(copylib
(prompt "Copying " #sobj "...")
(help @copylib-help)
(source (tackon "SObjs/" #sobj))
(dest "SObjs:")
(optional "nofail" "force")
(confirm "expert")
)
)
;else
(
(run "CopyStore SObjs/" #sobj " SObjs:")
)
)
(p_comparesobj #sobj)
(if (= #same 0)
(
(p_schedulesobj #sobj)
)
)
)
)
)
(if (= @app-name "NetSurfAutoInstall") (set #AutoInstall 1))
(if (<> #AutoInstall 1) (welcome))
(complete 0)
(set @default-dest (getenv "AppPaths/NetSurf"))
(set @default-dest
(askdir
(prompt "Where would you like to install NetSurf?\n"
"(a drawer will not be created)")
(help @askdir-help)
(default @default-dest)
)
)
(complete 5)
(working "Checking existing installation...")
(set #icon-exists (exists (tackon @default-dest "NetSurf.info")))
(set osver (getversion))
(set osver (/ osver 65536))
(if (>= osver 53)
(
(if (= #AutoInstall 0)
(
(set #cairo-name "Shared objects/part-Cairo")
)
;else
(
(set #cairo-name "")
)
)
(set #cairo-version 1)
(set #netsurf-exists (exists (tackon @default-dest "NetSurf")))
(if (<> #netsurf-exists 0)
(
; Guess if the installed version is static, if it
; is bigger than 5MB then it probably is!
(set #netsurf-size (getsize (tackon @default-dest "NetSurf")))
(if (> #netsurf-size 5000000) (set #cairo-version 0))
)
)
)
; else
(
(set #cairo-version 0)
(set #cairo-name "")
)
)
(complete 10)
(if (AND (> @user-level 0) (<> #cairo-name ""))
(
(set #cairo-version
(askchoice
(prompt "Which version of NetSurf would you like to install?")
(help "The Cairo/shared objects version has better rendering "
"of some graphical elements, and supports SVG. However, "
"some users report problems with the use of shared objects.\n\n"
@askchoice-help)
(choices "Static/graphics.library" #cairo-name)
(default #cairo-version)
)
)
)
)
(complete 15)
(set #options-exist (exists (tackon @default-dest "Resources/Options")))
(set #aiss-theme "")
(if (= #options-exist 0)
(
(if (exists "TBimages:" (noreq))
(set #aiss-theme "AISS")
)
(set #themename
(askchoice
(prompt "Please select theme")
(help "AISS theme requires AISS (and def_pointers for 32-bit "
"pointers), and will only be shown as an option if "
"AISS is installed.\n\n"
@askchoice-help)
(choices "Default" #aiss-theme)
(default 0)
)
)
(select #themename
(set #theme "Resources/Themes/Default")
(set #theme "Resources/Themes/AISS")
)
)
)
(complete 20)
(set #netsurf-name (select #cairo-version "NetSurf" "NetSurf_Cairo"))
(if (= #AutoInstall 0)
(
(copylib
(prompt "Please check the version of NetSurf you are copying against "
"any which might already be installed.")
(help @copylib-help)
(source #netsurf-name)
(dest @default-dest)
(newname "NetSurf")
(optional "askuser" "force" "oknodelete")
(confirm "expert")
)
)
;else
(
(copyfiles
(prompt "Please check the version of NetSurf you are copying against "
"any which might already be installed.")
(help @copyfiles-help)
(source #netsurf-name)
(dest "T:")
(newname "NetSurf")
(optional "force" "oknodelete")
)
(run "CopyStore T:NetSurf" @default-dest)
(delete "T:NetSurf")
)
)
(complete 30)
(copyfiles
(prompt "Copying files")
(source "")
(choices "Resources" "Rexx" "NetSurf.guide" "NetSurf.readme" "COPYING")
(help @copyfiles-help)
(dest @default-dest)
(infos)
; (all)
)
(set #complete 40)
(if (= #cairo-version 1)
(
(working "Copying Shared Objects")
(foreach "SObjs" "#?"
(complete #complete)
(p_copysobj @each-name)
(set #complete (+ #complete 3))
)
)
)
(complete 90)
(if #theme
(
(set #theme-icon (tackon @default-dest (tackon #theme "NetSurf.info")))
(set #icon-exists (exists #theme-icon))
(if #icon-exists
(
(copyfiles
(prompt "Copying theme icon")
(source #theme-icon)
(help @copyfiles-help)
(dest @default-dest)
)
)
)
(textfile
(prompt "Setting default options")
(help @textfile-help)
(dest (tackon @default-dest "Resources/Options"))
(append "theme:" #theme "\n")
(append "use_pubscreen:Workbench\n")
)
)
)
(complete 95)
(working "Setting MIME types")
(p_setmimetype "css" "text/css")
(p_setmimetype "html" "text/html")
(p_setmimetype "ascii" "text/plain")
(p_setmimetype "jpeg" "image/jpeg")
(p_setmimetype "gif" "image/gif")
(p_setmimetype "png" "image/png")
(p_setmimetype "jng" "image/jng")
(p_setmimetype "mng" "image/mng")
(p_setmimetype "svg" "image/svg")
(p_setmimetype "bmp" "image/bmp")
(p_setmimetype "ico" "image/ico")
(p_setmimetype "sprite" "image/x-riscos-sprite")
(p_setmimetype "lha" "application/x-lha")
(p_setmimetype "zip" "application/x-zip")
(complete 100)
(if (= #AutoInstall 1)
(
(exit (quiet))
)
(
(p_failedsobjs)
(exit)
)
)