; ***************************************
; *** $VER: Install_EO V2.00 (8.6.96) ***
; ***************************************

; ** Script Version 2.00 **
; · EVERYDAY: assign is now implimented for ease.
; · Docs no longer copied to Locale:help/english.
; · The main programs now look for EVERYDAY:docs/<language>
; · ARexx scripts names in icons are default as EVERYDAY:rexx/<script>
; · Script now contains other languages than English.
; · Alarmist_World.data file now obsolete, see Everyday:WorldClocks/ 
; · Parts of this script were taken from the MUI install script.

; ** Script Version 1.10 **
; · Now copies the Introduction.guide to the Installation drawer.
; · Changes tooltypes on Alarmist, Locate, On-Time and Tasker in
;   reference to ARexx scripts.

; ** Script Version 1.00 **
; Original Release.

(complete 0)

;=============================================================================
; ** Deutsch strings **

(if (= @language "deutsch")
(

(set #intro
(cat "\nEveryday Organiser v2.00 ©1996 by Mathew Wilson\n\n"
     "Alle Programme in diesem Archiv\n"
     "sind FreeWare.\n\n"
     "Sie brauchen *mindestens* MUI Version 3.3 "
     "um diese Programme zu benutzen!\n"
))

(set #oldeo
(cat "Der Assign \"Everyday:\" wurde gefunden. "
     "Es wird angenommen, daß sie bereits eine Version des Everyday Organiser "
     "installiert haben.\n"
))

(set #oldeobackup
(cat "Ein Automatisches Backup der Aktuellen Version wird durchgeführt, bevor die neuw Version "
     "installiert wird.\n\n"
     "Danach können sie alle Benutzerdateien vom Backup-Verzeichnis in das neue "
     " EverydayOrganiser Verzeichnis kopieren und das Backup löschen."
))

(set #oldeodeletebackup
(cat "Ein Backup Verzeichnis von Everyday Organiser wurde gefunden. "
     "Wenn sie weitermachen, wird ein neues Backup erzeugt und die neue Version installiert."
     " Das wird ihr altes Backup löschen!"
))

(set #destdir "Wo möchten sie die Anwendung installieren?\n")

(set #destexists
(cat "Ein Everyday Organiser Verzeichnis existiert bereits. "
     "Wenn sie weitermachen wird der Inhalt dieses Verzeichnisses gelöscht und"
     " mit der neuen Installation überschrieben."
))

(set #docsask "Wählen sie die Sprache(s) der AmigaGuide Dokumentation die sie installieren möchten.")

(set #catalogsask
(cat "Die eingebaute Sprache ist Englisch."
     " Wählen sie, welche anderen Sprachen sie installieren möchten."
))

(set #alarmistask
(cat "Möchten sie Alarmist in das SYS:WBStartup Berzeichnis kopieren?\n\n"
     "Dies wird empfohlen!"
))

(set #extrasask
(cat "Die Extra Programme sind in dem Extras Verzeichnis\n"
     "Aber sie sollten in die normalen Verzeichnisse kopiert werden.\n\n"
     "Bitte wählen sie, welche kopiert werden sollen."
))

(set #obsolete
(cat "Die folgenden Überflüssigen Dateien wurden gefunden.\n\n"
     "Möchten sie sie löschen ?\n"
))

(set #addassign "Ein Assign wird zu der Datei \"s:user-startup\" hinzugefügt.")

(set #installed "\nEveryday Organiser installiert im Verzeichnis ")

(set #lastwords "Ich hoffe, sie finden den Everyday Organiser brauchbar.")

))

;=============================================================================
; ** Italiano strings **

(if (= @language "italiano")
(

(set #intro
(cat "\nEveryday Organiser v2.00 ©1996 di Mathew Wilson\n\n"
     "Tutti i programmi inclusi in questo archivio\n"
     "sono classificati come FreeWare.\n\n"
     "Per farli funzionare *DEVI* avere la versione 3.3 "
     "o superiore di MUI!\n"
))

(set #oldeo
(cat "E' stato trovato l'assegnamento \"Everyday:\".\n"
     "Si suppone quindi che sia già stata installata una versione di "
     "Everyday Organizer.\n"
))

(set #oldeobackup
(cat "Verrà fatto un backup automatico della versione correntemente installata "
     "prima di procedere.\n\n"
     "In questo modo sarà possibile recuperare i file di configurazione "
     "dal vecchio cassetto e copiarli nel nuovo."
))

(set #oldeodeletebackup
(cat "E' stato trovato anche un cassetto di backup di Everyday Organizer."
     "Procedendo, verrà creato un backup della versione correntemente installata "
     "e quindi verrà eliminato il backup già presente !"
))

(set #destdir "Dove vuoi installare l'applicazione ?\n")

(set #destexists
(cat "E' già presente un cassetto nel percorso specificato. "
     "Procedendo, si conferma di voler cancellare i contenuti "
     "di questo cassetto e sostituirli con la nuova installazione."
))

(set #docsask "Seleziona la lingua della documentazione AmigaGuide da installare.")

(set #catalogsask
(cat "La lingua utilizzata internamente nel programma è l'inglese.\n"
     "Seleziona tra questi i cataloghi esterni da installare."
))

(set #alarmistask
(cat "Vuoi che Alarmist venga copiato in SYS:WBStartup ?\n\n"
     "Questo passaggio è raccomandato !"
))

(set #extrasask
(cat "I programmi ausiliari si trovano nel cassetto Extras\n"
     "ma dovrebbero essere copiati nei loro rispettivi cassetti\n\n"
     "Seleziona quali dei seguenti copiare."
))

(set #obsolete
(cat "Sono stati trovati i seguenti file (obsoleti).\n\n"
     "Vuoi cancellarli ?\n"
))

(set #addassign "La seguente riga di assegnamento sara aggiunta al file \"s:user-startup\".")

(set #installed "\nEveryday Organizer e stato installato in ")

(set #lastwords "Spero troverai Everyday Organiser utile.")

))

;=============================================================================
; ** English strings **

(if (= @language "english")
(

(set #intro
(cat "\nEveryday Organiser v2.00 ©1996 by Mathew Wilson\n\n"
     "All the programs in this archive are\n"
     "classified as FreeWare.\n\n"
     "You *must* have at least MUI version 3.3 installed "
     "to operate most of these programs!\n"
))

(set #oldeo
(cat "The Assign \"Everyday:\" has been detected. "
     "It is assumed that you alread have a version of Everyday Organiser "
     "installed.\n"
))

(set #oldeobackup
(cat "An automatic backup of the current version will be made before the new version "
     "is installed.\n\n"
     "Then you may copy any user files from the backup drawer to the new "
     " EverydayOrganiser drawer and delete the backup."
))

(set #oldeodeletebackup
(cat "A backup directory of Everyday Organiser was also found. "
     "Proceeding now will backup the current version and install the new "
     "version. Thus deleting your original backup!"
))

(set #destdir "Where would you like the applications to be installed?\n")

(set #destexists
(cat "An Everyday Organiser drawer already exists in your selected destination directory. "
     "By proceeding, you indicate that you wish to delete the "
     "contents of this drawer and replace it with the new installation."
))

(set #docsask "Select the language(s) of AmigaGuide documentations you wish to install.")

(set #catalogsask
(cat "The default language strings for the main programs are in English."
     "Select from the following other language Catalogs to install."
))

(set #alarmistask
(cat "Would you like Alarmist copied to your SYS:WBStartup drawer?\n\n"
     "This is recommended!"
))

(set #extrasask
(cat "The extra programs are in the Extras drawer\n"
     "but they should be copied to their normal drawers\n\n"
     "Please choose which of the following to copy."
))

(set #obsolete
(cat "The following obsolete files were found.\n\n"
     "Would you like them deleted?\n"
))

(set #addassign "An Assign will be added to your \"s:user-startup\" file.")

(set #installed "\nEveryday Organiser installed to ")

(set #lastwords "I hope you find Everyday Organiser useful.")

))

;=============================================================================

; ** Installation Preparation ***

; get source root dir
(set path (pathonly @icon))
(set @default-dest "SYS:Utilities")

; *** Introduction ***

(message #intro)

;=============================================================================

; ** Check for EVERYDAY: assign **
; We'll assume this means an old version was previously installed

(if (= (exists "Everyday:" (noreq)) 2)
(
   (set @default-dest (expandpath "Everyday:/"))
   (set everydaydir (tackon @default-dest "EverydayOrganiser"))
   (set olddir (tackon @default-dest "EverydayOrganiser_old"))

   ; remove the assign
   (run "assign Everyday: remove")

   (message #oldeo "\n" #oldeobackup)

   (if (<> (exists olddir (noreq)) 0)
   (
      (message #oldeodeletebackup)
      
      (run (cat "delete " olddir " all >nil:"))
      (run (cat "delete " olddir ".info >nil:"))
   ))
   
   (rename everydaydir olddir)
   (rename (cat everydaydir ".info") (cat olddir ".info"))
   
   (tooltype (dest olddir) (noposition))
   
))

(complete 5)

;=============================================================================

; ** Get Destination directory **

(set @default-dest
   (askdir
      (prompt #destdir)
      (help @askdir-help)
      (default @default-dest)
   )
)

(set @default-dest (expandpath @default-dest))
(set destination (tackon @default-dest "EverydayOrganiser"))

(if (<> (exists destination) 0)
(
   (message #destexists)
   (run (cat "delete " destination " all >nil:"))
   (run (cat "delete " destination ".info >nil:"))
))

(complete 10)

;=============================================================================

; ** Copy Everyday.Library **
; ** not using copylib, I know 8) **
(copyfiles
   (source "/libs/everyday.library")
   (dest "LIBS:")
)

(complete 15)

; ** Copy the Everyday Organiser drawer (except for docs/) **

(copyfiles
   (source "/EverydayOrganiser/")
   (dest destination)
   (pattern "~(Docs|Catalogs|Catalogs.info)")
)

(copyfiles
   (source "/EverydayOrganiser.info")
   (dest @default-dest)
)

(complete 25)

;** Setup a drawer ready for docs **

(makedir (tackon destination "Docs"))

(copyfiles
   (source "/EverydayOrganiser/Docs.info")
   (dest destination)
)

(complete 35)

;=============================================================================

; ** Copy Alarmist into WBStartup ? **

(if (> @user-level 1)
   
   (set choice (askbool
      (prompt #alarmistask)
      (help @askbool-help)
      (default 1))
   )
   
   (set choice 1)
)

(if (= choice 1)
(
	(copyfiles
      (source "/EverydayOrganiser/Alarmist")
      (dest "SYS:WBStartup/")
      (files)
   )
   
   ; only copy the icon if there wasn't one before
   ; that way we don't destroy the user's settings
   (if (= (exists "SYS:WBStartup/Alarmist.info" (noreq)) 0)
   (
   	(copyfiles
      	(source "/EverydayOrganiser/Alarmist.info")
      	(dest "SYS:WBStartup/")
      )
   ))
))

(complete 45)

;=============================================================================

; ** Copy some of the extra programs to different places **

(set choice
   (askoptions
      (prompt #extrasask)
      (choices "TimePrefs (SYS:Prefs)" "Talk      (C:)" "Sam       (C:)" "Coder     (C:)")
      (help @askoptions-help)
   )
)

; ** copy TimePrefs **
(if
   (<> 0 (BITAND choice 1))
   (
      (copyfiles
         (source "/EverydayOrganiser/Extras/TimePrefs")
         (dest "sys:prefs")
         (infos)
      )
      
      (delete (tackon destination "Extras/TimePrefs"))
      (delete (tackon destination "Extras/TimePrefs.info"))
   )
)

; ** copy Talk? **
(if
   (<> 0 (BITAND choice 2))
   (
      (copyfiles
         (source "/EverydayOrganiser/Extras/Talk")
         (dest "C:")
      )
   )
)

; ** Copy Talk defaults file to s: **
(copyfiles
	(source "/EverydayOrganiser/Extras/Talk_Defaults")
	(dest "s:")
)

; ** copy Sam? **
(if
   (<> 0 (BITAND choice 4))
   (
      (copyfiles
         (source "/EverydayOrganiser/Extras/Sam")
         (dest "C:")
      )
   )
)

; ** copy Coder? **
(if
   (<> 0 (BITAND choice 8))
   (
      (copyfiles
         (source "/EverydayOrganiser/Extras/Coder")
         (dest "C:")
      )
   )
)

(complete 60)

;=============================================================================

; ** Copy the docs for selected languages */

(if (= @language "english")
   (set defchoice 1)
)

(set choice
   (askoptions
      (prompt #docsask)
      (choices "English")
      (default defchoice)
      (help @askoptions-help)
   )
)

(if (<> 0 (BITAND choice 1))
(
   (copyfiles
   (source "/EverydayOrganiser/Docs/English")
   (dest (tackon destination "Docs/English"))
   (all))
   
   (copyfiles
   (source "/EverydayOrganiser/Docs/English.info")
   (dest (tackon destination "Docs"))
)
))

(complete 70)

;=============================================================================

; ** Catalogs **

; Note: The default strings for all cataloged programs are in English.

(if (= (exists "Locale:Catalogs" (noreq)) 2)
(
   (set choice
      (askoptions
         (prompt #catalogsask)
         (choices "Deutsch" "Italiano")
         (help @askoptions-help)
      )
   )

   (if (<> 0 (BITAND choice 1))
   
      (copyfiles
      (source "/Catalogs/Deutsch")
      (dest "Locale:Catalogs/Deutsch")
      (all)
   ))

   (if (<> 0 (BITAND choice 2))
   
      (copyfiles
      (source "/Catalogs/Italiano")
      (dest "Locale:Catalogs/Italiano")
      (all)
   ))
))

(complete 75)

;=============================================================================

; ** Copy the Introduction.Guide to the installation drawer **

(copyfiles
	(source "/Introduction.guide")
	(dest destination)
	(infos)
)

(set intro_doc (tackon destination "Introduction.guide"))

(tooltype
	(dest intro_doc)
	(noposition)
)

(complete 80)

;=============================================================================

; ** Look for and Delete obsolete files **

(set obsolete "")

(if (= (exists "Help:english/Locate.guide" (noreq)) 1)
   (set obsolete (cat obsolete "\n· Help:english/Locate.guide")))

(if (= (exists "Help:english/Alarmist.guide" (noreq)) 1)
   (set obsolete (cat obsolete "\n· Help:english/Alarmist.guide")))

(if (= (exists "Help:english/OnTime.guide" (noreq)) 1)
   (set obsolete (cat obsolete "\n· Help:english/OnTime.guide")))

(if (= (exists "Help:english/Tasker.guide" (noreq)) 1)
   (set obsolete (cat obsolete "\n· Help:english/Tasker.guide")))

(if (<> obsolete "")
(
   (set choice (askbool
      (prompt (cat #obsolete obsolete))
      (help @askbool-help)
      (default 0))
   )
   
   (if (= choice 1)
   (
      (if (= (exists "Help:english/Locate.guide" (noreq)) 1)
         (delete "Help:english/Locate.guide"))

      (if (= (exists "Help:english/Alarmist.guide" (noreq)) 1)
         (delete "Help:english/Alarmist.guide"))

      (if (= (exists "Help:english/OnTime.guide" (noreq)) 1)
         (delete "Help:english/OnTime.guide"))

      (if (= (exists "Help:english/Tasker.guide" (noreq)) 1)
         (delete "Help:english/Tasker.guide"))
   ))

))

(complete 85)

(set obsolete "")

(if (= (exists "SYS:WBStartup/Alarmist_World.data" (noreq)) 1)
   (set obsolete (cat obsolete "\n· SYS:WBStartup/Alarmist_World.data")))

(if (<> obsolete "")
(
   (set choice (askbool
      (prompt (cat #obsolete obsolete))
      (help @askbool-help)
      (default 0))
   )
   
   (if (= choice 1)
   (
      (if (= (exists "SYS:WBStartup/Alarmist_World.data" (noreq)) 1)
         (delete "SYS:WBStartup/Alarmist_World.data"))
   ))

))

(complete 90)

;=============================================================================

; ** Add User Startup **

(startup "Everyday Organiser"
   (prompt #addassign)
   (command "   assign Everyday: \"" destination "\"")
   (help @startup-help)
)

(run (cat "assign Everyday: " "\"" destination "\""))

;=============================================================================

(complete 100)

(transcript (cat #installed destination"\n"))

; ** Let's annoy the user with the Intro doc :) **
(run "sys:utilities/multiview" ("\"%s\"" intro_doc) (safe))

(exit #lastwords)
