netsurf/amiga/dist/Install
Chris Young bf14b2ddb1 Make adding NetSurf to launch-handler more robust:
Now handles when the user hasn't ever saved their config
Doesn't attempt to add when auto-installing
Removes need for fitr
2015-01-17 12:52:09 +00:00

414 lines
9.5 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_append #filename #text
(set #file-path (tackon "ENVARC:launch-handler/URL" #protocol))
(set #def-file-path (tackon "ENVARC:launch-handler/URL/defaults" #protocol))
(if (exists #file-path)
(
(set #inc #file-path)
)
;else
(
(set #inc #def-file-path)
)
)
(textfile
(dest #file-path)
(include #inc)
(append #text)
)
)
(procedure p_chk_launch-handler #protocol
(if (exists (tackon "ENVARC:launch-handler/URL" #protocol))
(
(run "C:Search >T:NS_Install.tmp " (tackon "ENVARC:launch-handler/URL" #protocol) " NetSurf" (safe))
)
;else
(
(run "C:Search >T:NS_Install.tmp " (tackon "ENVARC:launch-handler/URL/defaults" #protocol) " NetSurf" (safe))
)
)
(set #has_entry (getsize "T:NS_Install.tmp"))
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Script execution starts here ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(if (= @app-name "NetSurfAutoInstall") (set #AutoInstall 1))
(set @app-name "NetSurf")
(if (<> #AutoInstall 1) (welcome))
; (hopefully temporary) workaround for a bug in Installer:
(if (= @language "dutch") (set @askdir-help ""))
(complete 0)
(set @default-dest (getenv "AppPaths/NetSurf"))
; If env-var did not exist, this is a first time install.
; For novice users we must take care to put the files somewhere sensible.
(if (= @default-dest "")
(
; Workaround for Installer bug picking TEXTCLIP: as a sensible location
(if (= @default-dest "TextClip:") (set @default-dest "SYS:Internet"))
(if (= @user-level 0)
(
(makedir (tackon @default-dest "NetSurf") (infos))
(set @default-dest (tackon @default-dest "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))
(complete 10)
(set #user (getenv "user"))
(if (= #user "") (set #user "Default"))
(set #user-dir (tackon (tackon @default-dest "Users") #user))
(set #user-options (tackon #user-dir "Choices"))
(set #options-exist (exists #user-options))
(set #searchengines-exist (exists (tackon @default-dest "Resources/SearchEngines")))
(set #user-hotlist (tackon #user-dir "Hotlist"))
(set #hotlist-exist (exists #user-hotlist))
(set #old-hotlist (tackon @default-dest "Resources/Hotlist"))
(set #old-hotlist-exist (exists #old-hotlist))
(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 #themeshort "Default")
(set #themeshort "AISS")
)
(set #theme (tackon "PROGDIR:Resources/Themes/" #themeshort))
)
)
(complete 15)
(if (>= osver 53)
(
(if (= #AutoInstall 1)
(
(set #addlaunchhandler 0)
)
;else
(
(set #addlaunchhandler
(askbool
(prompt "Add NetSurf to launch-handler? (recommended)")
(help "launch-handler is part of OS4.1 which opens URLs "
" by launching a web browser.\n\n"
"The installation will update the configuration of "
"OS4.1 to allow URLs to be opened by NetSurf.")
(default 1)
)
)
)
)
)
;else
(
(set #addlaunchhandler 0)
)
)
(complete 20)
(set #runfixfonts
(askbool
(prompt "Installer will run FixFonts after NetSurf is installed. "
"Unless you have a *very* good reason you should not skip this step.")
(help "FixFonts corrects inconsistencies in the Amiga FONTS: structure. "
"Running it will prevent NetSurf hitting problems when the fonts are scanned.")
(default 1)
(choices "Run FixFonts" "Skip")
)
)
(complete 25)
(working "Installing NetSurf")
(if (= #AutoInstall 0)
(
(copyfiles
(prompt "Copying NetSurf...")
(help @copyfiles-help)
(source "NetSurf")
(dest @default-dest)
(newname "NetSurf")
(optional "askuser" "force" "oknodelete")
(confirm "expert")
)
)
;else
(
(run "CopyStore NetSurf" @default-dest)
)
)
(complete 40)
(if #searchengines-exist
(rename (tackon @default-dest "Resources/SearchEngines") (tackon @default-dest "Resources/SearchEngines.backup"))
)
(run "c:filenote Rexx/CloseTabs.nsrx \"Close other tabs\"")
(run "c:filenote Rexx/ViewSource.nsrx \"View source\"")
(complete 50)
(copyfiles
(prompt "Copying files")
(source "")
(choices "Resources" "Rexx" "NetSurf.guide" "NetSurf.readme")
(help @copyfiles-help)
(dest @default-dest)
(infos)
(optional "nofail")
; (all)
)
(complete 65)
(copyfiles
(prompt "Copying additional documentation")
(source "")
(pattern "(COPYING|ChangeLog)")
(help @copyfiles-help)
(dest @default-dest)
(infos)
(optional "nofail")
)
(complete 70)
(if #themeshort
(
(set #theme-icon
(tackon "Resources/Themes"
(tackon #themeshort "NetSurf.info")
)
)
(if (exists #theme-icon)
(
(copyfiles
(prompt "Copying theme icon")
(help @copyfiles-help)
(source #theme-icon)
(dest @default-dest)
)
)
)
(makedir #user-dir)
(textfile
(prompt "Setting default options")
(help @textfile-help)
(dest #user-options)
(append "theme:" #theme "\n")
(append "pubscreen_name:Workbench\n")
)
(if (= #hotlist-exist 0)
(if (= #old-hotlist-exist 1)
(
(copyfiles
(prompt "Migrating NetSurf 2.x Hotlist")
(help @copyfiles-help)
(source #old-hotlist)
(dest #user-dir)
(optional "askuser" "force" "oknodelete")
)
)
)
)
)
)
(complete 75)
(if (= (exists "ENVARC:Sys/def_css.info") 0)
(copyfiles
(prompt "Copying default CSS icon")
(source "Resources/default.css.info")
(newname "def_css.info")
(help @copyfiles-help)
(dest "ENVARC:Sys")
(optional "nofail")
)
)
(complete 80)
(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 "webp" "image/webp")
(p_setmimetype "lha" "application/x-lha")
(p_setmimetype "zip" "application/x-zip")
(p_setmimetype "js" "application/javascript")
(complete 85)
(if (>= osver 53)
(if (= (exists "Rexx:NetSurf") 0)
(
(textfile
(prompt "Creating NetSurf launch helper")
(help @textfile-help)
(dest "Rexx:NetSurf")
(append "/*\n"
" * Copyright 2013 Chris Young <chris@unsatisfactorysoftware.co.uk>\n"
" *\n"
" * This file is part of NetSurf, http://www.netsurf-browser.org/\n"
" *\n"
" * NetSurf is free software; you can redistribute it and/or modify\n"
" * it under the terms of the GNU General Public License as published by\n"
" * the Free Software Foundation; version 2 of the License.\n"
" *\n"
" * NetSurf is distributed in the hope that it will be useful,\n"
" * but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
" * GNU General Public License for more details.\n"
" *\n"
" * You should have received a copy of the GNU General Public License\n"
" * along with this program. If not, see <http://www.gnu.org/licenses/>.\n"
" */\n"
"\n"
"/* This is a convenience script for launching NetSurf from the Shell.\n"
" * If NetSurf is already running it will open the supplied URL in a new tab.\n"
" * This can be used in URL Prefs in place of directly calling APPDIR:NetSurf.\n"
" */\n"
"\n"
"options results\n"
"parse arg url\n"
"\n"
"if show('P', 'NETSURF') then do\n"
" address NETSURF 'OPEN' url 'NEWTAB'\n"
" address NETSURF 'TOFRONT'\n"
"end\n"
"else do\n"
" address command 'APPDIR:NetSurf URL' url\n"
"end\n")
)
(protect "Rexx:NetSurf" "+se")
)
)
)
(complete 90)
(if (= #addlaunchhandler 1)
(
(working "Adding NetSurf to launch-handler config")
(if (= (p_chk_launch-handler "FILE.LH") 0)
(p_append "FILE.LH" "ClientName=\"NETSURF\" ClientPath=\"Rexx:NetSurf\" CMDFORMAT=\"*\"file:///%s*\"\"")
)
(if (= (p_chk_launch-handler "HTTP.LH") 0)
(p_append "HTTP.LH" "ClientName=\"NETSURF\" ClientPath=\"Rexx:NetSurf\" CMDFORMAT=\"*\"http://%s*\"\"")
)
(if (= (p_chk_launch-handler "HTTPS.LH") 0)
(p_append "HTTPS.LH" "ClientName=\"NETSURF\" ClientPath=\"Rexx:NetSurf\" CMDFORMAT=\"*\"https://%s*\"\"")
)
(if (= (p_chk_launch-handler "WWW.LH") 0)
(p_append "WWW.LH" "ClientName=\"NETSURF\" ClientPath=\"Rexx:NetSurf\" CMDFORMAT=\"*\"http://www.%s*\"\"")
)
; (if (= (p_chk_launch-handler "FTP.LH") 0)
; (p_append "FTP.LH" "ClientName=\"NETSURF\" ClientPath=\"Rexx:NetSurf\" CMDFORMAT=\"*\"ftp://%s*\"\"")
; )
)
)
(complete 95)
(working "Running FixFonts")
(if #runfixfonts
(
(run "SYS:System/FixFonts")
)
)
(complete 100)
(if (= #AutoInstall 1)
(
(exit (quiet))
)
(
(exit)
)
)