;   -----------------------------------
;   Update BancaBase 1.3 to 1.3a script
;   -----------------------------------
;   Description:
;
;   Commodore Installer Script for patch
;   BancaBase V 1.3 to 1.3a
;   $VER: 1.01 (c) 1997 by Stefano Dardari

; some useful variables
	(set 
		newline 		"\n"
        #prg            "BancaBase"
        #prgnew         "BancaBase.new"
        #prgold         "BancaBase.old"
		#bbprogname 	"BancaBase13pch.lha"
        #bb3-path       "BancaBase/"
        #catalogsname   "catalogs/"
        #docsname       "docs/"
        #examplename    "examples.lha"
		#patternsname 	"Patterns.lha"
        #soundsname     "Sounds.lha"
        #registername   "Register.lha"
        #bb3-dest       "SYS:"
        #bb3-key        "BBase.key"
        #bb3-prefs      "BancaBase.prefs"
        #bb3-readme     "ReadMe.doc"
        #bb3-readme-ita "Leggimi.doc"
        #bb3-update     "Aggiornamenti.doc"
        #bb3-icon-MWB   "Icons/MagicWB/"
        #bb3-icon-NI    "Icons/NewIcon/"
        #bb3-icon-STD   "Icons/Standard/"
        #STDTYPE        0
        #NITYPE         1
        #MWBTYPE        2
        #iconpattern    "#?.info"
        #bb3-lang-eng   "english"
        #bb3-lang-deu   "deutsch"
        #bb3-lang-ita   "italiano"
        #bb3-lang-fra   "français"
        #bb3-lang-rus   "russian"
        #ENG            0
        #DEU            1
        #ITA            2
        #FRA            3
        #RUS            4
        #BB3size        337984
	)

; some strings
(set #omp (cat "\nUn momento prego..." newline))

(set #installtext (cat "Benvenuti nello script di AGGIORNAMENTO di BancaBase.\n\nBancaBase3 V 1.3a (C) 1997/98 by Stefano Dardari\nAll rights reserved\n\nUPDATE script V 1.1\n"))
(set #BB3dest-prompt "Prego selezionare la directory dov'è attualmente installata la versione 1.3 di BancaBase.\n(Vedere l'Aiuto per ulteriori dettagli)")
(set #BB3dest-help (cat "Si deve indicare il percorso completo nel quale è stato installato il programma BancaBase.\n\nNOTA : per applicare questo aggiornamento è necessario disporre della versione 1.3 REGISTRATA di BancaBase, installata su HardDisk."))
(set #BB3lang-prompt "Selezionare la lingua (tra quelle disponibili) che il programma dovrà utilizzare per i menù ed i gadgets.")
(set #BB3lang-help "Selezionando una delle lingue elencate, vengono copiati i relativi file catalogs che il programma caricherà in modo autonomo. Se si desidera lasciare il programma in INLGESE non è necessario alcun catalogo esterno in quanto costruito all'interno del programma stesso")
(set #BB3docs-prompt "Selezionare la lingua (tra quelle disponibili) dei file di documentazione che si desidera installare.")
(set #BB3docs-help "E' possibile selezionare la lingua (tra quelle elencate) di file documentazione del programma.")
(set #BB3end (cat "Aggiornamento completato. Leggere il file readme prima di iniziare."))
(set #BB3icon-prompt "\nQuale tipo di ICONE si desidera installare tra quelle disponibili ?")
(set #BB3icon-help "Selezionare il tipo di Icona desiderata per il programma e tutti gli accessori forniti. Se ad esempio nel vostro WorkBench utilizzate normalmente le icone stile Magic WorkBench, selezionate MagicWB. Lo stesso vale per gli altri tipi di icona.")
(set #coping-icon-prompt "Attendere prego ... installo le icone selezionate.")
(set #msgpchfailed "ATTENZIONE!!!\n\nIl Patch non è stato applicato a causa di un errore.\n\nAssicurarsi di applicare il patch esclusivamente alla versione 1.3 REGISTRATA di BancaBase, con qualsiasi altra versione il patch non può essere applicato.\nSe avete una versione 1.3 registrata e non riuscite ad applicare questo patch contattate l'autore.")

(welcome #installtext)

(procedure set_icon
   (set #def-icon
      (askchoice
         (prompt #BB3icon-prompt)
         (help   #bb3icon-help)
         (choices "Icone Standard" "Icone NewIcon" "Icone MagicWB")
         (default 0)
      )
   )
)

(procedure set_lang_catalogs
   (set #def-lang
      (askchoice
         (prompt #BB3lang-prompt)
         (help   #bb3lang-help)
         (choices "English (built in)" "Deutsch" "Italiano" "Français" "Russian")
         (default #ITA)
      )
   )
)

(procedure set_lang_docs
   (if (> #def-lang #ITA)
        (set #def-lang #ITA)
   )
   (set #def-lang
      (askchoice
         (prompt #BB3docs-prompt)
         (help   #bb3docs-help)
         (choices "English" "Deutsch" "Italiano")
         (default #def-lang)
      )
   )
)

(procedure set_dir
   (set #bb3-dest
      (askdir
         (prompt #BB3dest-prompt)
         (help #BB3dest-help)
         (default #bb3-dest)
         (newpath)
      )
   )
)

(set_dir)
(set #dest-path #bb3-dest)
(set @default-dest #dest-path)


(if (= 0 (exists #dest-path (noreq)))
   (
      (set #file-exist (cat "Spiacente ma la directory " #dest-path " non esiste.\n\nSelezionare la directory destinazione contenente la versione 1.3 di BancaBase.\n"))
      (message #file-exist)
      (set_dir)
      (set #dest-path #bb3-dest)
      (set @default-dest #dest-path)
   )
)

(complete 10)

(set #dst-path #dest-path)
(set #dst (tackon #dest-path #prg))

(if (exists #dst)
    (
    (set size (getsize #dst))
    (if (= size #BB3size)
       (message ("\n\nTrovato %s (%ld bytes)\n\nIl patch è applicabile." #dst size))
       )
    )
)

(if (not(= size #BB3size))
    (abort #msgpchfailed)
    )

(working #omp (cat "\n\nScompatto il file di patch ...\n" #dest-path))

(run ("lha -x x "#bbprogname" "#dest-path))

(complete 20)

(working #omp "\n\n\nEseguo l'aggiornamento del software ...\nattendere prego ...")

(set #pchcommand (cat "spatch -o" (tackon #dest-path #prgnew) " " #dst))
; (message #pchcommand)

(set a (run #pchcommand))
; (message ("\nIl patch ritorna :%ld" a))

(if (not(= a 0))
    (abort #msgpchfailed)
    )

(delete (tackon #dest-path #prg))
(rename (tackon #dest-path #prgnew) (tackon #dest-path #prg))

(complete 30)
(set_lang_catalogs)
(if (= #def-lang #ENG)
    (set #lang #bb3-lang-eng)
    )
(if (= #def-lang #DEU)
    (set #lang #bb3-lang-deu)
    )
(if (= #def-lang #ITA)
    (set #lang #bb3-lang-ita)
    )
(if (= #def-lang #FRA)
    (set #lang #bb3-lang-fra)
    )
(if (= #def-lang #RUS)
    (set #lang #bb3-lang-rus)
    )

(set #src-path (tackon "Catalogs" #lang))
(set #dst-path (tackon #dst-path #catalogsname))
(set #dst-path (tackon #dst-path #lang))

;(message (cat "Sorgente " #src-path))
;(message (cat "Destinazione " #dst-path))

(if (exists #src-path (noreq))
       (
          (if (not(exists #dst-path))
            (
            (makedir #dst-path (infos))
            )
          )
          (working #omp "Copio i cataloghi selezionati.")
          (copyfiles
      		(source #src-path)
   		    (dest #dst-path)
            (files)
            (all)
          )
          (if (exists (cat #catalogsname "BancaBase.cd"))
             (copyfiles
          		(source (cat #catalogsname "BancaBase.cd"))
    		    (dest #dst-path)
                (files)
              )
          )        
          (if (exists (cat #catalogsname "SDBase.cd"))
             (copyfiles
                (source (cat #catalogsname "SDBase.cd"))
    	        (dest #dst-path)
                (files)
             )
	      )

       )
)

(complete 40)

(set_lang_docs)
(if (= #def-lang #ENG)
    (set #lang #bb3-lang-eng)
    )
(if (= #def-lang #DEU)
    (set #lang #bb3-lang-deu)
    )
(if (= #def-lang #ITA)
    (set #lang #bb3-lang-ita)
    )

(set #src-path (tackon "Docs" #lang))
(set #dst-path (tackon #dest-path #docsname))

(if (exists #src-path (noreq))
       (
          (if (not (exists #dst-path))
            (
              (makedir #dst-path (infos))
            )
          )
          (working #omp "Copio i files di documentazione.")
          (copyfiles
      		(source #src-path)
   		    (dest #dst-path)
            (files)
            (all)
          )

       )
)


(complete 50)
(set #dest-path @default-dest)

(if (exists #registername (noreq))
       (
          (delete (tackon #dest-path "Register")
              (all)
              (infos)
          )
          (makedir (tackon #dest-path "Register"))
          (working #omp "Scompatto e copio i files documentazione per la registrazione.")
          (run "lha -x x "#registername" "(cat #dest-path "/"))
       )
)

(if (exists #bb3-readme (noreq))
	(copyfiles
        (prompt #omp "Copio i file di informazioni.")
		(source #bb3-readme)
		(dest #dest-path)
        (files)
	)
)

(if (exists #bb3-readme-ita (noreq))
	(copyfiles
        (prompt #omp "Copio i file di informazioni in italiano.")
		(source #bb3-readme-ita)
		(dest #dest-path)
        (files)
	)
)

(if (exists #bb3-update (noreq))
	(copyfiles
        (prompt #omp "Copio i file di aggiornamento in italiano.")
		(source #bb3-update)
		(dest #dest-path)
        (files)
	)
)

(complete 60)
(if (exists #patternsname (noreq))
   (
      (if (askbool (prompt #BB3patt-prompt) (help #BB3patt-help) (default 1))
          (
             (working #omp "Scompatto e copio gli sfondi (patterns).")
             (run "lha -x x "#patternsname" "(cat #dest-path "/"))
          )
      )
   )
)


(complete 70)

(set_icon)
(if (= #def-icon #STDTYPE)
    (set #src-icon #bb3-icon-STD)
    )
(if (= #def-icon #NITYPE)
    (set #src-icon #bb3-icon-NI)
    )
(if (= #def-icon #MWBTYPE)
    (set #src-icon #bb3-icon-MWB)
    )

(copyfiles
   (prompt #coping-icon-prompt)
   (source #src-icon)
   (dest  #dest-path)
   (pattern #iconpattern)
   (noposition)
)

(set #src-path (tackon #src-icon "Docs"))
(set #dst-path (tackon #dest-path "Docs"))


(copyfiles
   (prompt #coping-icon-prompt)
   (source #src-path)
   (dest  #dst-path)
   (all)
   (noposition)
)

(set #src-path (tackon #src-icon "Register"))
(set #dst-path (tackon #dest-path "Register"))

(copyfiles
   (prompt #coping-icon-prompt)
   (source #src-path)
   (dest  #dst-path)
   (all)
   (noposition)
)

(complete 80)

(if (exists #soundsname (noreq))
       (
          (working #omp "Scompatto e copio i files sonori.")
          (run "lha -x x "#soundsname" "(cat #dest-path "/"))
       )
)


(complete 90)

(if (exists #bb3-prefs (noreq))
	(copyfiles
        (prompt #omp "Copio il file preferenze.")
		(source #bb3-prefs)
		(dest #dest-path)
        (files)
	)
)


(complete 100)

; The last message
(set end_text (cat "\nSpero che BancaBase ti piaccia!\n"
              "Non esitare a mandarmi commenti, suggerimenti e bugreports.\n\n"
              "Le registrazioni sono BENVENUTE !!! :))"))

; the end
(set @default-dest #dest-path)
    (exit end_text)
;EOF

