home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The AGA Experience 2
/
agavol2.iso
/
software
/
utilities
/
comms
/
thor_2.22
/
installthor
< prev
next >
Wrap
Text File
|
1995-12-18
|
21KB
|
927 lines
;*************************************************************************
; Title:
; InstallThor
;*************************************************************************
; Description:
; Commodore Installer Script for the Thor 2.22 software
;*************************************************************************
; Author:
; Øyvind Ellefsen - versions for THOR upto 1.22
; Petter Nilsen - versions for 1.25 ->
;*************************************************************************
; Still to do:
; - Show .readme file
; - Warn against MultiUser
;
;*************************************************************************
;
;******************************************************
;***** SET UP OUR VARIABLES AND OTHER SUCH STUFF ******
;******************************************************
; some useful variables
(set true 1)
(set false 0)
(set yes true)
(set no false)
(set is_a_file 1)
(set is_a_dir 2)
(set quote "\"")
(set newline "\n")
(set nothing "")
(set bbspack 0)
(set inetpack 0)
; set up our delete options
(delopts "AskUser" "OkNoDelete" "Force")
; some useful procedures
; change userlevel to expert
(procedure expert_level
(
(user 2)
)
)
; reset userlevel back to default
(procedure default_level
(
(user default-level)
)
)
; store off userlevel
(procedure save_default_level
(
(set default-level @user-level)
)
)
; some overused strings
(set omp (cat "One moment please..." newline))
; introduce ourselfs to the viewers
(welcome "Welcome to the Thor installer. This installer uses "
"the Commodore Amiga Installer. All of our future Thor releases "
"will be using this installer and we would like to get any feedback "
"that might help to improve the installation procedure." newline
)
; first reset the user level so that the novice can see whats going on
(save_default_level)
(expert_level)
;Make assign to install from
(makeassign "Thor_Install" "" (safe))
;******************
;** Check Memory **
;******************
(run "Avail flush")
(set Running (run "Thor_Install:CheckForLib"))
(while (= Running 20)
(
(Message newline "Thor seem to be running, you MUST close it NOW."
newline "If you don't, the installation will fail!")
(run "Avail flush")
(set Running (run "Thor_Install:CheckForLib"))
)
)
;************************
;** Start Installation **
;************************
(if (exists "Thor:libs/bbsread.library" (noreq))
; Then
((set end_text "Please use the UpdateThor script to\nupdate your already installed THOR.")
(abort end_text))
)
(if (exists "BBSData:global.config" (noreq))
; Then
((set end_text "Please use the UpdateThor script to\nupdate your already installed THOR.")
(abort end_text))
)
(if (exists "envarc:THOR/BBSDataPath" (noreq))
(
(if (askbool
(prompt
"THOR seems to be already installed, "
"do you want to install it again from scratch?")
(help
"The installer script has found a previous "
"installation of THOR.\n\n"
"Select YES if you want it install again, otherwise NO")
(default 1)
)
; Then
(
(run "delete envarc:thor all force")
(run "delete env:thor all force")
)
; Else
(
(set end_text "Please use the UpdateThor script to\nupdate your already installed THOR.")
(abort end_text)
)
)
)
)
(set Thor_Dir
(askdir
(prompt "Where would you like Thor installed?"
newline "The installer will NOT create a directory!")
(help @askdir-help)
(default "Work:")
(newpath)
)
)
(set Thor_Dir (expandpath Thor_Dir))
; before we go on lets reset the user's level back to what it was
(default_level)
; verify that the Thor directory exists
(if (<> (exists Thor_Dir) is_a_dir)
(
(makedir Thor_Dir
(prompt
"The directory you have selected for Thor does not "
"seem to exist. Do you want us to create it for you?"
)
(help @makedir-help)
(infos)
(confirm)
)
)
)
; Create directories for the THOR installation
(makeassign "Thor" Thor_dir)
(makedir "Thor:Data")
(makeassign "BBSData" "Thor:data")
;***********************************
;***** GET FIRST DISK IN HERE ******
;***********************************
; first copy over the stuff
(working omp "Decompressing and copying Thor files.")
(run "Thor_Install:lha -a x Thor_Install:thor.lha THOR:" )
;************************
;** Copy the keyfile **
;************************
(if (exists "Thor_Install:THOR.key" (noreq))
; Then
(copyfiles
(source "Thor_Install:THOR.key")
(dest "THOR:")
(nogauge)
)
)
;*****************************************
;** Copy the default arexx macro file **
;*****************************************
(if (exists "Thor_Install:THOR.macros" (noreq))
; Then
(copyfiles
(source "Thor_Install:THOR.macros")
(dest "THOR:")
(nogauge)
)
)
(default_level)
;***********************************
; Create the environment variables *
;***********************************
(set Running (run "Thor:bin/basemanager convert >con:0/0/640/200/Converting/AUTO/CLOSE/WAIT"))
(if (<> 0 Running)
(
((set end_text "Basemanager failed in setting up the env-variables.")
(abort end_text)))
)
;******************
;** Locale stuff **
;******************
(default_level)
(set catalog
(askoptions
(prompt "What languages would you like to install ?\n"
"English is the built-in language.")
(help
"This will install locale files for other languages than English. "
"You can set the prefered language on Workbench and in Thor by"
"using the prefs:locale tool." newline @askchoice-help
)
(choices "Norsk" "Dansk" "Svenska" "Deutsch")
(default 0)
)
)
(makedir "thor:catalogs")
(if (bitand 1 catalog)
(copyfiles
(source "Thor_Install:catalogs/norsk")
(dest "thor:catalogs/norsk")
(all)
)
)
(if (bitand 2 catalog)
(copyfiles
(source "Thor_Install:catalogs/dansk")
(dest "thor:catalogs/dansk")
(all)
)
)
(if (bitand 4 catalog)
(copyfiles
(source "Thor_Install:catalogs/svenska")
(dest "thor:catalogs/svenska")
(all)
)
)
(if (bitand 8 catalog)
(copyfiles
(source "Thor_Install:catalogs/deutsch")
(dest "thor:catalogs/deutsch")
(all)
)
)
;*********************
;** reqtools.libary **
;*********************
(copylib
(prompt "Copying ReqTools library")
(help "This will copy the ReqTools library." newline @copylib-help)
(source "Thor_Install:reqtools.library")
(dest "libs:")
)
;***********
;** Fonts **
;***********
(copyfiles
(prompt "Choose the fonts to install with Thor" newline "These are not required for Thor to run" )
(help "This will copy the default font files for Thor." newline @copyfiles-help)
(source "Thor_Install:Fonts")
(dest "Fonts:")
(fonts)
(choices "Grn" "Thin609" "Thin611" "Thin711")
(confirm)
)
;**************************************
;* Install the bbsread database stuff *
;**************************************
(set failed (run "thor:bin/initarc"))
(if (<> 0 failed)
(
((set end_text "Installation failed.\nIf you received any error message,\nplease write this down and send us\na mail about the problem.")
(abort end_text))
)
)
(run "thor:bin/InitCharsets")
(if (exists "Thor_Install:bin/parseqwk" (noreq))
; Then
(
(set bbspack 1)
)
; Else
(
(if (askbool
(prompt newline
"Would you like to install the modules for "
"QWK, Fido, Hippo, Bluewave, ABBS/MBBS and Omen "
"to be used with Bulletin Board Systems?\n\n "
"(you will be able to select which modules to "
"install later in this installtions procedure).")
(help newline
"This section of the installation is dedicated "
"to installation of some common formats "
"required if you want to use THOR with BBSes.\n\n"
"Select YES if you want to continue with this "
"installation, otherwise NO")
(default 1)
)
; Then
(
(set bbsfile
(askfile
(prompt
"Please select the BBS archive for THOR 2.2. "
"(Usually named 'thor22_bbs.lha').\n\n"
"It will be unarchived automatically.")
(help @askfile-help)
(default "sys:")
)
)
; verify that the file exists
(if (exists bbsfile)
(
(set runfile (cat runfile "Thor_Install:lha -a x " quote bbsfile quote " Thor_Install:"))
(set failed (run runfile))
(if (<> 0 failed)
(
((set failed_text "Unarchiving of the BBS archive failed.")
(message end_text)))
)
; Else
(
(set bbspack 1)
)
)
)
)
)
)
)
(if (exists "Thor_Install:bin/gettcp" (noreq))
; Then
(
(set inetpack 1)
)
; Else
(
(if (askbool
(prompt newline
"Would you like to install the modules for "
"UUCP, SOUP, NNTP, SMTP and POP3 "
"to be used with Internet?\n\n"
"(you will be able to select which modules to "
"install later in this installtions procedure).")
(help newline
"This section of the installation is dedicated "
"to installation of some common formats "
"required if you want to use THOR with Internet.\n\n"
"Select YES if you want to continue with this "
"installation, otherwise NO")
(default 1)
)
; Then
(
(set inetfile
(askfile
(prompt
"Please select the Internet archive for THOR 2.2\n"
"(Usually named 'thor22_inet.lha').\n\n"
"It will be unarchived automatically."
(help @askfile-help)
(default "sys:")
)
)
)
; verify that the file exists
(if (exists inetfile)
(
(set runfile2 (cat runfile2 "Thor_Install:lha -a x " quote inetfile quote " Thor_Install:"))
(set failed (run runfile2))
(if (<> 0 failed)
(
((set failed_text "Unarchiving of the Internet archive failed.")
(message end_text)))
)
; Else
(
(set inetpack 1)
)
)
)
)
)
)
)
(if (= bbspack 1)
(
(set bbs_type
(askoptions
(prompt
"Please select which BBS modules "
"you want to install.")
(help
"What system type for BBS usage that should be "
"installed can be selected here."
)
(choices
"QWK - Normal QWK"
"Fido - Normal Fidonet"
"BlueWave - Normal BlueWave"
"ABBS - Normal ABBS"
"ABBS_QWK - ABBS with QWK support"
"MBBS - Normal MBBS"
"Hippo/BBBS - Normal Hippo V2 and Hippo on BBBS"
"Omen - Normal Omen"
)
(default -1)
)
)
(copyfiles
(source "Thor_Install:scripts")
(dest "THOR:scripts")
(pattern "#?BBS#?")
)
(if (bitand 1 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?QWK")
)
(copyfiles
(source "Thor_Install:s/cfgqwk")
(dest "THOR:s")
)
(execute "thor:s/cfgqwk")
)
)
(if (bitand 2 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?FIDO")
)
(copyfiles
(source "Thor_Install:s/cfgfido")
(dest "THOR:s")
)
(execute "thor:s/cfgfido")
)
)
(if (bitand 4 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?BLUE")
)
(copyfiles
(source "Thor_Install:s/cfgblue")
(dest "THOR:s")
)
(execute "thor:s/cfgblue")
)
)
(if (bitand 8 bbs_type)
(
(copyfiles
(source "Thor_Install:bin/packambbs")
(dest "THOR:bin")
)
(copyfiles
(source "Thor_Install:bin/parsemsg")
(dest "THOR:bin")
)
(copyfiles
(source "Thor_Install:s/cfgabbs")
(dest "THOR:s")
)
(execute "thor:s/cfgabbs")
)
)
(if (bitand 16 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?QWK")
)
(copyfiles
(source "Thor_Install:s/cfgabbs_qwk")
(dest "THOR:s")
)
(execute "thor:s/cfgabbs_qwk")
)
)
(if (bitand 32 bbs_type)
(
(copyfiles
(source "Thor_Install:bin/packambbs")
(dest "THOR:bin")
)
(copyfiles
(source "Thor_Install:bin/parsemsg")
(dest "THOR:bin")
)
(copyfiles
(source "Thor_Install:s/cfgmbbs")
(dest "THOR:s")
)
(execute "thor:s/cfgmbbs")
)
)
(if (bitand 64 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?hippo")
)
(copyfiles
(source "Thor_Install:s/cfghippo")
(dest "THOR:s")
)
(copyfiles
(source "Thor_Install:s/cfgbbbs")
(dest "THOR:s")
)
(execute "thor:s/cfghippo")
(execute "thor:s/cfgbbbs")
)
)
(if (bitand 128 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?omen")
)
(copyfiles
(source "Thor_Install:s/cfgomen")
(dest "THOR:s")
)
(execute "thor:s/cfgomen")
)
)
)
)
(if (= inetpack 1)
(
(set bbs_type
(askoptions
(prompt
"Please select which Internet modules "
"you want to install.")
(help
"What system type for Internet usage that should be "
"installed can be selected here."
)
(choices
"TCP/TCP_ONLINE - POP3, SMTP and NNTP"
"SOUP/UQWK_SOUP - Normal SOUP and SOUP w/uqwk"
"UUCP - Normal UUCP"
)
(default -1)
)
)
(copyfiles
(source "Thor_Install:libs/utnet.library")
(dest "THOR:libs")
)
(copyfiles
(source "Thor_Install:bin/InitRFC")
(dest "THOR:bin")
)
(copyfiles
(source "Thor_Install:scripts")
(dest "THOR:scripts")
(pattern "#?UQWK#?")
)
(if (bitand 1 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?TCP")
)
(copyfiles
(source "Thor_Install:")
(dest "THOR:")
(pattern "ConnectTHOR#?")
)
(copyfiles
(source "Thor_Install:s/cfgtcp")
(dest "THOR:s")
)
(copyfiles
(source "Thor_Install:s/cfgtcp_online")
(dest "THOR:s")
)
(execute "thor:s/cfgtcp")
(execute "thor:s/cfgtcp_online")
)
)
(if (bitand 2 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?SOUP")
)
(copyfiles
(source "Thor_Install:s")
(dest "THOR:s")
(pattern "#?soup")
)
(makedir "THOR:unix")
(copyfiles
(source "Thor_Install:unix")
(dest "THOR:unix")
(all)
)
(execute "thor:s/cfguqwk_soup")
(execute "thor:s/cfgsoup")
)
)
(if (bitand 4 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?UUCP")
)
(copyfiles
(source "Thor_Install:s/cfguucp")
(dest "THOR:s")
)
(execute "thor:s/cfguucp")
)
)
)
)
;*****************************
;* Simple configuration here *
;*****************************
(if (askbool
(
(prompt newline "The following section in this installation "
"is used for setting up a download and an upload "
"directory for message packets. This section is "
"optional, but the directories needs to be "
"set in THOR if you do not set them up here.\n\n"
"Do you want to proceed with this?")
(help newline "This section of the installation is dedicated "
"to some first-time parameters that THOR "
"needs to have configured.\n\n"
"Select YES if you want to continue with this "
"configuration, otherwise NO")
(default 1)
)
)
; Then
(
(set DL_Dir
(askdir
(prompt "Where do you keep your downloaded message packets?\n\n"
"This is usually the download directory "
"configured in the communication program you "
"use."
(help @askdir-help)
(default "Work:")
(newpath)
)
)
)
(set DL_Dir (expandpath DL_Dir))
; verify that the download directory exists
(if (<> (exists DL_Dir) is_a_dir)
(
(makedir DL_Dir
(prompt
"The directory you have selected for downloaded "
"message packets does not seem to exist.\n\n"
"Do you want it to be created for you?")
(help @makedir-help)
(infos)
(confirm)
)
)
)
(if (= (exists DL_Dir) is_a_dir)
(
(set dlstr (cat dlstr "sys:rexxc/rx THOR:rexx/cfgglobal.br DNL " quote DL_Dir quote))
(run dlstr)
(run dlstr)
)
)
(set UL_Dir
(askdir
(prompt "Where would you like to keep any reply "
"message packets that THOR generates?\n\n"
"This is usually the upload directory "
"configured in your communication program."
(help @askdir-help)
(default "Work:")
(newpath)
)
)
)
(set UL_Dir (expandpath UL_Dir))
; verify that the download directory exists
(if (<> (exists UL_Dir) is_a_dir)
(
(makedir UL_Dir
(prompt
"The directory you have selected for upload of "
"reply packets does not seem to exist.\n\n"
"Do you want it to be created for you?")
(help @makedir-help)
(infos)
(confirm)
)
)
)
(if (= (exists UL_Dir) is_a_dir)
(
(set ulstr (cat ulstr "sys:rexxc/rx THOR:rexx/cfgglobal.br UPL " quote UL_Dir quote))
(run ulstr)
)
)
)
)
;*****************************
;****** Install icons ********
;*****************************
(set icon
(askchoice
(prompt
"Please select what icon-set to install with THOR.\n")
(help
"If you use MagicWB on your Workbench, "
"you might want to install the special MagicWB icons.\n\n"
"Likewise, if you use NewIcons on your Workbench, "
"you might want to install the special NewIcons icons.")
(choices "Normal icons" "MagicWB icons" "NewIcons icons")
(default 0)
)
)
(if (= icon 1)
(
(copyfiles
(prompt "Copying MagicWB icon files")
(source "Thor_Install:MWBIcons")
(dest "Thor:")
(pattern "~(THOR.guide.info)")
(nogauge)
)
(copyfiles
(prompt "Copying MagicWB icon files")
(source "Thor_Install:MWBIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "THOR.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying MagicWB icon files")
(source "Thor_Install:MWBIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "ConfigTHOR.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying MagicWB icon files")
(source "Thor_Install:MWBIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "ARexx.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying MagicWB icon files")
(source "Thor_Install:MWBIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "BBSReadRexx.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying MagicWB icon files")
(source "Thor_Install:MWBIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "THOR_Rexx.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying MagicWB icon files")
(source "Thor_Install:MWBIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "Installation.guide.info")
(nogauge)
)
)
)
(if (= icon 2)
(
(copyfiles
(prompt "Copying NewIcons icon files")
(source "Thor_Install:NewIcons")
(dest "Thor:")
(pattern "~(THOR.guide.info)")
(nogauge)
)
(copyfiles
(prompt "Copying NewIcons icon files")
(source "Thor_Install:NewIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "THOR.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying NewIcons icon files")
(source "Thor_Install:NewIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "ConfigTHOR.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying NewIcons icon files")
(source "Thor_Install:NewIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "ARexx.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying NewIcons icon files")
(source "Thor_Install:NewIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "BBSReadRexx.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying NewIcons icon files")
(source "Thor_Install:NewIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "THOR_Rexx.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying NewIcons icon files")
(source "Thor_Install:NewIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "Installation.guide.info")
(nogauge)
)
)
)
(if (exists "env:sys/def_drawer.info" (noreq))
(copyfiles
(prompt "Copying default drawer icon")
(help "This will copy the default drawer icon." newline @copyfiles-help)
(source "env:sys/def_drawer.info")
(dest "Thor:")
(newname "Docs.info")
(infos)
)
)
;*****************************
;***** WE ARE ALMOST DONE ****
;*****************************
; make sure that default-dir is pointing to the right place
(set @default-dest Thor_Dir)
(makeassign "Thor_Install")
(makeassign "BBSData")
(makeassign "Thor_Disk" (safe))
; final message for our viewers
(set end_text (cat "Hope you like THOR! Don't hesitate to "
"send us comments, bugreports and suggestions."))
; now for the exit
(exit end_text)