; 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) ) ) ; The below procedure is part of "fitr", see ; http://www.unsatisfactorysoftware.co.uk/fitr (procedure p_fitr #filename #text #comment #flags (set #comstring "") (if #comment (set #comstring (cat "COMMENT=\"" #comment "\""))) (set #comment "") (set #switches "") (if #flags (set #switches (cat " " #flags))) (set #flags "") (if #text ( (transcript "Adding " @app-name " section to " #filename) (textfile (dest "t:fitr-installer.tmp") (append #text) ) (run (cat "fitr \"" #filename "\" \"" @app-name "\" t:fitr-installer.tmp " #comstring #switches)) (delete "t:fitr-installer.tmp") ) ;else ( (transcript "Removing " @app-name " section from " #filename) (run (cat "fitr \"" #filename "\" \"" @app-name "\" " #comstring #switches)) ) ) ) (procedure p_chk_launch-handler #protocol (run "C:Search >T:NS_Install.tmp " (tackon "ENVARC:launch-handler/URL" #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)) (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) ( (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\"") (run "c:filenote Rexx/GetVideo.nsrx \"Get video\"") (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 \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 .\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) ( ; We use fitr here so that the sections are only added once. ; We also check for string "NetSurf" within the files as saving ; the config will overwrite fitr's tags. ; This probably needs rewriting to not use fitr as it isn't really necessary now. (working "Adding NetSurf to launch-handler config") (if (= (p_chk_launch-handler "FILE.LH") 0) (p_fitr "ENVARC:launch-handler/URL/FILE.LH" "ClientName=\"NETSURF\" ClientPath=\"Rexx:NetSurf\" CMDFORMAT=\"*\"file:///%s*\"\"") ) (if (= (p_chk_launch-handler "HTTP.LH") 0) (p_fitr "ENVARC:launch-handler/URL/HTTP.LH" "ClientName=\"NETSURF\" ClientPath=\"Rexx:NetSurf\" CMDFORMAT=\"*\"http://%s*\"\"") ) (if (= (p_chk_launch-handler "HTTPS.LH") 0) (p_fitr "ENVARC:launch-handler/URL/HTTPS.LH" "ClientName=\"NETSURF\" ClientPath=\"Rexx:NetSurf\" CMDFORMAT=\"*\"https://%s*\"\"") ) (if (= (p_chk_launch-handler "WWW.LH") 0) (p_fitr "ENVARC:launch-handler/URL/WWW.LH" "ClientName=\"NETSURF\" ClientPath=\"Rexx:NetSurf\" CMDFORMAT=\"*\"http://www.%s*\"\"") ) ; (if (= (p_chk_launch-handler "FTP.LH") 0) ; (p_fitr "ENVARC:launch-handler/URL/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)) ) ( (p_failedsobjs) (exit) ) )