; Guide2Ital.rexx Installation script

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

(complete 0)

(set #DefaultDest (expandpath "SYS:Utilities"))


(set #NeedV36
   (cat
      "Guide2Ital richiede il sistema operativo 2.0 o superiore."
   )
)

(set #Introduction
   (cat
      "Questo programma installa \"Guide2Ital.rexx\" 2.0 nel tuo sistema.\n\n"
      "Naturalmente per usare il programma si deve possedere una copia del "
      "programma ITAL di Arturo Ortino.\n"
      "Per un uso avanzato, sono richieste delle librerie in più, che verranno "
      "copiate se necessario.\n"
   )
)

(set #Copy_Guide2Ital
   (cat
      "Copia di \"Guide2Ital.rexx\".\n\n"
   )
)

(set #AskDestDir
   (cat
      "Scegliere un cassetto in cui copiare \"Guide2Ital.rexx\"."
   )
)

(set #AskDirHelp
   (cat
      "Copia di \"Guide2Ital.rexx\".\n\n"
      "Si deve scegliere un cassetto in cui copiare fisicamente lo script "
      "\"Guide2Ital.rexx\".\n\n"
      "La locazione predefinita è \"SYS:Utilities/\", ma una scelta senza dubbio "
      "più conveniente sarebbe lo stesso cassetto che contiene anche il "
      "programma ITAL. In questo caso, infatti, lo script sarà in grado di "
      "lanciare automaticamente ITAL, se questo non è già stato caricato.\n\n"
      "ATTENZIONE! Il programma ITAL deve essere configurato in modo che la "
      "porta ARexx sia attiva!\n"
   )
)

(set #CopyFilesHelp
   (cat
      "Copia di \"Guide2Ital.rexx\".\n\n"
      "Lo script e la relativa icona saranno copiati nel cassetto già "
      "selezionato.\n"
   )
)

(set #CopyAlreadyExistsHelp
   (cat
      "Copia di \"Guide2Ital.rexx\".\n\n"
      "Esiste già una copia installata, cancellarla e ripetere la procedura di "
      "installazione.\n"
   )
)

(set #CopyLibs
   (cat
      "Copia delle librerie necessarie.\n"
   )
)

(set #CopyLibsHelp
   (cat
      "Copia delle librerie.\n\n"
      "I requester di \"Guide2Ital.rexx\" sono accessibili solo disponendo "
      "delle librerie \"rexxreqtools.library\" e \"reqtools.library\".\n"
      "Comunque sia il programma continuerà a funzionare, seppur con qualche "
      "limitazione (non sarà possibile usare i requester per selezionare i "
      "file da processare).\n\n"
      "ITAL, per funzionare, richiede la presenza della libreria "
      "\"powerpacker.library\", che serve a scompattare i file compressi.\n\n"
      "Poichè alcune librerie non sono presenti in questo sistema nel cassetto "
      "logico \"LIBS:\" si può scegliere di copiarle o meno.\n"
   )
)

(set #CopyRexxSysHelp
   (cat
      "Copia delle librerie.\n\n"
      "I programmi ARexx richiedono la presenza, tra gli altri files, della "
      "libreria rexxsyslib.library, che in questo sistema manca. Probabilmente "
      "non sarà sufficiente copiare questa sola libreria in LIBS: perchè i "
      "programmi ARexx funzionino correttamente. Conviene, in ogni caso, fare "
      "riferimento ai manuali di AmigaOS, e cercare più informazioni a riguardo "
      "di ARexx e della sua installazione nel sistema.\n"
   )
)

(set  #CopySupport
   (cat
      "Copia dei file di supporto.\n"
   )
)

(set #CopySupportHelp
   (cat
      "Copia dei file di supporto.\n\n"
      "Lo script \"Guide2Ital.rexx\" fa uso del comando WaitForPort. Se questo "
      "non è presente nel path di ricerca, il programma, pur continuando a "
      "funzionare in condizioni normali, non è più in grado di eseguire "
      "correttamente l'avvio automatico di ITAL, se questo non è già in "
      "esecuzione.\n"
      "Il cassetto predefinito per questo comando è \"SYS:Rexxc/\", ma una buona "
      "alternativa potrebbe essere il cassetto logico \"C:\".\n\n"
      "ATTENZIONE! E' comunque importante che il cassetto logico in cui risiede "
      "sia nel path di ricerca.\n"
   )
)

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

(set OSVersion (/ (getversion) 65536))

(if (< OSVersion 36)
   (abort #NeedV36)
)

(message #Introduction)

(copylib
   (prompt #Copy_Guide2Ital)
   (help #CopyFilesHelp)
   (source "Guide2Ital.rexx")
   (dest (askdir
      (prompt #AskDestDir)
      (help #AskDirHelp)
      (default "SYS:Utilities/"))
   )
   (infos)
   (confirm)
)

(complete 50)

(set RexxReqTools_exists (exists (cat "LIBS:rexxreqtools.library")))
(set ReqTools_exists (exists (cat "LIBS:reqtools.library")))
(set PowerPacker_exists  (exists (cat "LIBS:powerpacker.library")))

(set libraries (AND RexxReqTools_exists (AND ReqTools_exists PowerPacker_exists)))

(if (= libraries 0)
(
   (copyfiles
      (prompt #CopyLibs)
      (help #CopyLibsHelp)
      (source ":libs/")
      (dest (set LIBSDir (askdir
                  (prompt #CopyLibs)
                  (help #CopyLibsHelp)
                  (default "LIBS:")
               )))
      (choices
         "powerpacker.library"
         "reqtools.library"
         "rexxreqtools.library"
      )
      (confirm)
   )
))

(complete 60)

(set RexxSys_exists (exists (cat "LIBS:rexxsyslib.library")))

(if (= RexxSys_exists 0)
(
   (copyfiles
      (prompt #CopyLibs)
      (help #CopyRexxSysHelp)
      (source ":libs/")
       (choices
          "rexxsyslib.library"
       )
      (dest LIBSDir)
      (confirm)
   )
))

(complete 70)

(set WaitForPort_exists (exists (cat "SYS:Rexxc/WaitForPort")))

(if (= WaitForPort_exists 0)
(
   (if (askoptions
          (prompt #CopySupport)
          (choices
             "WaitForPort"
          )
          (help #CopySupportHelp)
       )
      (copyfiles
         (help #CopySupportHelp)
         (source ":rexxc/WaitForPort")
         (dest (askdir
                  (prompt #AskSupportDir)
                  (help #CopySupportHelp)
                  (default "SYS:Rexxc")
               ))
      )
   )
))

(complete 100)
(exit)
