;** $VER: VisualPrefsBeta_install 40.10 (7.5.97) by Nik Soggia <nsoggia@telnetwork.it>
;**
;** modified (17.5.97) by Massimo Tantignone
;** modified (13.6.97) by Massimo Tantignone
;** modified (19.7.97) by Massimo Tantignone
;** modified (21.7.97) by Massimo Tantignone
;** modified (24.7.97) by Massimo Tantignone
;** modified (26.7.97) by Massimo Tantignone
;** modified (19.10.97) by Massimo Tantignone
;** modified (22.10.97) by Massimo Tantignone
;**
;** requires:
;** - RexxMast, Rx and Search commands
;** - T: and ENV: assignments for temporary files

;***************************************
;** MESSAGES (DEFAULT: ENGLISH)

(set msg_rx     "Installer is unable to locate the \"Rx\" command")
(set msg_rxm    "Installer is unable to locate the \"RexxMast\" command")
(set msg_rxp    "Please locate it:")
(set msg_wait   "Checking installation")
(set msg_vpi    "A copy of VisualPrefs is already installed")
(set msg_vpn    "VisualPrefs is not installed")
(set msg_dir    "A drawer WILL NOT be created")
(set msg_seldr  "Select the destination drawer:")
(set msg_selcpu "Select the version of VisualPrefs you want to install.")
(set msg_whdoc  "Where do you want to copy the documentation files?")
(set msg_lang   "What language catalogs do you want to install?")
(set msg_cpu000 "68000")
(set msg_cpu020 "68020/030")
(set msg_cpu040 "68040/060")
(set msg_l_ita  "Italiano")
(set msg_icoo   "Normal icons")
(set msg_icon   "NewIcons")
(set msg_icom   "Magic WB")
(set msg_icoi   "Iconographics")
(set msg_icop   "Select icon set")
(set msg_exa    "Install example preferences?")
(set msg_done   "VisualPrefs will be available next time you boot.")
(set msg_done2  "\n\nIf you use them, you should remove Prop3D and\nCenterTitles from your User-startup.")
(set rxhelp     "Use the file requester to select the \"Rx\" program.")
(set rxmhelp    "Use the file requester to select the \"RexxMast\" program.")
(set dirhelp    "Select the drawer into which VisualPrefs is to be copied.\nIt should reside in the system command path.")
(set dirhelp2   "Select the drawer into which the documentation is to be copied.\nThe default is the same drawer which VisualPrefs resides in.")
(set cpuhelp    "If you have an accelerated Amiga, you can choose to\ninstall a more optimized version of VisualPrefs and\nits preferences editor.")
(set langhelp   "Choose one or more languages for VisualPrefs and the GUI editor.\nYou can later select which one to use with the Locale preferences editor.")
(set iconhelp   "Choose the style for the icons to be installed.")
(set exahelp    "If you select \"Yes\", an example preferences file (preset) will be copied into your SYS:Prefs/Presets drawer.")
(set var_docd   "DocsEnglish")
(set var_docr   "VisualPrefs.guide")
;(set var_docc   "Changes")

;***************************************
;** MESSAGES (ITALIANO)

(if (= @language   "italiano")(
   (set msg_rx     "Installer non  in grado di trovare il comando \"Rx\"")
   (set msg_rxm    "Installer non  in grado di trovare il comando \"RexxMast\"")
   (set msg_rxp    "Per favore, localizzatelo:")
   (set msg_wait   "Verifica installazione")
   (set msg_vpi    "Una copia di VisualPrefs  gi installata")
   (set msg_vpn    "VisualPrefs non  installato")
   (set msg_dir    "NON verr creato alcun cassetto")
   (set msg_seldr  "Scegliere il cassetto di destinazione:")
   (set msg_selcpu "Scegliere la versione di VisualPrefs da installare.")
   (set msg_whdoc  "Dove volete che siano copiati i file della documentazione?")
   (set msg_lang   "Per quali lingue deve essere installato un catalog?")
   (set msg_cpu000 "68000")
   (set msg_cpu020 "68020/030")
   (set msg_cpu040 "68040/060")
   (set msg_l_ita  "Italiano")
   (set msg_icoo   "Normali")
   (set msg_icon   "NewIcons")
   (set msg_icom   "Magic WB")
   (set msg_icoi   "Iconographics")
   (set msg_icop   "Selezionare il set di icone")
   (set msg_exa    "Installare preferenze di esempio?")
   (set msg_done   "VisualPrefs sar disponibile dopo il prossimo reboot.")
   (set msg_done2  "\n\nSe li usate, dovreste rimuovere Prop3D e\nCenterTitles dalla vostra User-startup.")
   (set rxhelp     "Usate il file requester per selezionare il programma \"Rx\".")
   (set rxmhelp    "Usate il file requester per selezionare il programma \"RexxMast\".")
   (set dirhelp    "Selezionare il cassetto in cui deve essere copiato VisualPrefs.\nDovrebbe trovarsi nel path dei comandi di sistema.")
   (set dirhelp2   "Selezionare il cassetto in cui deve essere copiata la documentazione.\nIl default  lo stesso cassetto in cui si trova VisualPrefs.")
   (set cpuhelp    "Se avete un Amiga accelerato potete scegliere di\ninstallare versioni pi ottimizzate di VisualPrefs\ne del suo editor di preferenze.")
   (set langhelp   "Scegliere una o pi lingue per VisualPrefs e l'editor GUI.\nIn seguito si potr scegliere quale usare con l'editor di preferenze Locale.")
   (set iconhelp   "Scegliere lo stile per le icone da installare.")
   (set exahelp    "Selezionando \"S\" verr copiato un file di preferenze di esempio (preset) nel vostro cassetto SYS:Prefs/Presets.")
   (set var_docd   "DocsItaliano")
   (set var_docr   "VisualPrefs.guide")
   ;(set var_docc   "Cambiamenti")
))

;***************************************
;** LOCATE AREXX PROGRAMS

(if (= 1 (exists "sys:rexxc/rx" (noreq)))
   (set var_rx "sys:rexxc/rx")
   (if (= 1 (exists "c:rx" (noreq)))
      (set var_rx "c:rx")
      (set var_rx
         (askfile
            (default "SYS:RexxC/Rx")
            (help rxhelp)
            (prompt msg_rx ".\n\n" msg_rxp)
         )
      )
   )
)

(set var_rxm (tackon (pathonly var_rx) "rexxmast"))

(if (= 0 (exists var_rxm (noreq)))
   (if (= 1 (exists "sys:rexxc/rexxmast" (noreq)))
      (set var_rxm "sys:rexxc/rexxmast")
      (if (= 1 (exists "c:rexxmast" (noreq)))
         (set var_rxm "c:rexxmast")
         (if (= 1 (exists "sys:system/rexxmast" (noreq)))
            (set var_rxm "sys:system/rexxmast")
            (set var_rxm
               (askfile
                  (default "SYS:System/RexxMast")
                  (help rxmhelp)
                  (prompt msg_rxm ".\n\n" msg_rxp)
               )
            )
         )
      )
   )
)

(run var_rxm)

;***************************************
;** CHECK PREVIOUS INSTALLATION

(working "(" msg_wait ")")

(delete "t:installvp.rx" (optional force) (safe))
(textfile
   (safe)
   (dest "t:installvp.rx")
   (append (cat
      "/* filter */\n"
      "\n"
      "pull string\n"
      "\n"
      "comment=pos(';',string)\n"
      "if comment~==0 then string=trim(left(string,comment-1))\n"
      "say right(string,length(string)-lastpos(' ',string))\n"
   ))
)

(delete "t:installvp.sh" (optional force) (safe))
(textfile
   (safe)
   (dest "t:installvp.sh")
   (append (cat
      "delete force t:installvp.out\n"
      "\n"
      "search >t:installvp.out search visualprefs S:Startup-sequence\n"
      "if $RC eq 0\n"
      "   setenv installvp_vp 1\n"
      "   setenv installvp_vpp `" var_rx " <t:installvp.out t:installvp.rx`\n"
      "else\n"
      "   setenv installvp_vp 0\n"
      "   setenv installvp_vpp \"\"\n"
      "endif\n"
      "delete t:installvp.out\n"
      "\n"
   ))
)

(execute "t:installvp.sh" (safe))
(delete "t:installvp.rx" (safe))
(delete "t:installvp.sh" (safe))

(set var_vp (getenv "installvp_vp"))
(set var_vpp (getenv "installvp_vpp"))
(run "unsetenv installvp_vp")
(run "unsetenv installvp_vpp")

(if (= 1 var_vp)
   (
      (set @default-dest (pathonly var_vpp))
      (set msg_vp msg_vpi)
   )
   (set msg_vp msg_vpn)
)

(complete 5)

(set no_break_warning
   (askdir
      (default @default-dest)
      (help dirhelp)
      (prompt (cat msg_vp ".\n" msg_dir ".\n\n" msg_seldr))
   )
)
(set @default-dest (tackon no_break_warning ""))

(set docdir
   (askdir
      (default @default-dest)
      (help dirhelp2)
      (prompt (cat msg_whdoc "\n\n" msg_seldr))
   )
)
(set docdir (tackon docdir ""))

;***************************************
;** ASK INSTALLATION PREFERENCES

(complete 10)

(set var_cpu
   (askchoice
      (prompt msg_selcpu)
      (help cpuhelp)
      (choices msg_cpu000 msg_cpu020 msg_cpu040)
   )
)

(complete 12)

(set var_lang
   (askoptions
      (prompt msg_lang)
      (help langhelp)
      (choices msg_l_ita)
      (default 1)
   )
)

(complete 14)

(set var_icon
   (askchoice
      (prompt msg_icop)
      (help iconhelp)
      (choices msg_icoo msg_icon msg_icom msg_icoi)
   )
)

(complete 16)

(set var_exa
   (askbool
      (prompt msg_exa)
      (help exahelp)
   )
)

;***************************************
;** INSTALL FILES: VISUALPREFS

(complete 20)

(copyfiles
   (source "VisualPrefs")
   (dest "RAM:")
   (newname "VP_000")
   (safe)
)

(if (= 0 var_cpu)(
   (copyfiles (source "RAM:VP_000") (dest "RAM:") (newname "VP_0x0") (safe))
))

(if (= 1 var_cpu)(
   (run "InstallTools/SPatch > NIL: -oRAM:VP_0x0 -pInstallFiles/VisualPrefs_020_030.pch RAM:VP_000" (safe))
))

(if (= 2 var_cpu)(
   (run "InstallTools/SPatch > NIL: -oRAM:VP_0x0 -pInstallFiles/VisualPrefs_040_060.pch RAM:VP_000" (safe))
))

(delete "RAM:VP_000" (safe))

(copyfiles
   (source "RAM:VP_0x0")
   (dest @default-dest)
   (newname "VisualPrefs")
   (infos) (noposition)
)

(delete "RAM:VP_0x0" (safe))

;***************************************
;** INSTALL FILES: DOCUMENTATION

(complete 30)

(copyfiles
   (source (tackon var_docd ""))
   (dest docdir)
   (all) (infos) (noposition)
)

;***************************************
;** INSTALL FILES: GUI-PREFS

(complete 40)

(copyfiles
   (source "Prefs/GUI")
   (dest "RAM:")
   (newname "GUI_000")
   (safe)
)

(if (= 0 var_cpu)(
   (copyfiles (source "RAM:GUI_000") (dest "RAM:") (newname "GUI") (safe))
))

(if (= 1 var_cpu)(
   (run "InstallTools/SPatch > NIL: -oRAM:GUI -pInstallFiles/GUI_020_030.pch RAM:GUI_000" (safe))
))

(if (= 2 var_cpu)(
   (run "InstallTools/SPatch > NIL: -oRAM:GUI -pInstallFiles/GUI_040_060.pch RAM:GUI_000" (safe))
))

(delete "RAM:GUI_000" (safe))

(copyfiles
   (source "RAM:GUI")
   (dest "SYS:Prefs/")
   (noposition)
)

(copyfiles
   (source "Prefs/GUI.info")
   (dest "SYS:Prefs/")
   (noposition)
)

(delete "RAM:GUI" (safe))

;***************************************
;** INSTALL FILES: CATALOGS

(complete 50)

(if (bitand var_lang 1)
   (
      (copyfiles
         (source "Catalogs/italiano/gui.catalog")
         (dest "LOCALE:Catalogs/italiano/")
      )
   )
)

;***************************************
;** INSTALL FILES: ICONS

(complete 60)

(if (= 1 var_icon)(
   (copyfiles
      (source "NewIcons/GUI.info")
      (dest "SYS:Prefs/")
      (noposition)
   )
   (copyfiles
      (source "NewIcons/doc.info")
      (dest docdir)
      (newname (cat var_docr ".info"))
      (noposition)
   )
;   (copyfiles
;      (source "NewIcons/doc.info")
;      (dest docdir)
;      (newname (cat var_docc ".info"))
;      (noposition)
;   )
))

(if (= 2 var_icon)(
   (copyfiles
      (source "MagicWB/GUI.info")
      (dest "SYS:Prefs/")
      (noposition)
   )
   (copyfiles
      (source "MagicWB/doc.info")
      (dest docdir)
      (newname (cat var_docr ".info"))
      (noposition)
   )
;   (copyfiles
;      (source "MagicWB/doc.info")
;      (dest docdir)
;      (newname (cat var_docc ".info"))
;      (noposition)
;   )
))

(if (= 3 var_icon)(
   (copyfiles
      (source "Iconographics/GUI.info")
      (dest "SYS:Prefs/")
      (noposition)
   )
   (copyfiles
      (source "Iconographics/doc.info")
      (dest docdir)
      (newname (cat var_docr ".info"))
      (noposition)
   )
;   (copyfiles
;      (source "Iconographics/doc.info")
;      (dest docdir)
;      (newname (cat var_docc ".info"))
;      (noposition)
;   )
))

;***************************************
;** INSTALL FILES: SAMPLE PREFS

(complete 70)

(if (= 1 var_exa)
   (copyfiles
      (source "Prefs/Presets/")
      (dest "SYS:Prefs/Presets/")
      (all) (infos) (noposition)
   )
)

;***************************************
;** INSTALL FILES: NEW PREFERENCES FILE

;(complete 80)

;(rename "ENVARC:Sys/gui.prefs" "ENVARC:Sys/beta_gui.prefs")
;(run "InstallTools/ConvertGUIPrefs > NIL: ENVARC:Sys/beta_gui.prefs ENVARC:Sys/gui.prefs")

;***************************************
;** STARTUP-SEQUENCE

(complete 90)

(if (= 0 var_vp)
   (
      (run (cat "InstallTools/AddLine \"" @default-dest "\""))
      (protect "S:Startup-sequence" "+srwd")
   )
)

;***************************************
;** DONE

(complete 100)
(exit (cat "\n" msg_done msg_done2))

