; M2I 5.73 Installer Script
; $VER: 5.73 (18-Nov-97)
; Written by Thomas PIMMEL

(set #welcome-message
(cat "\nM2I 5.73 (c) Thomas PIMMEL 1991-1997"))

(set @default-dest "SYS:")


(if (= @language "français")
 (
	(set #wrongversion
	(cat	"Vous utilisez une vieille version du programme 'Installer'"
		"\n\n Ce script a besoin de l'Installer 42.9 (minimum),\n\n"
		"disponible sur Aminet (ftp.wustl.edu)"))

	(set #bad-kick
	(cat	"\n\nDésolé! Vous devez avoir le Workbench 3.0 ou "
		"plus pour utiliser M2I."))

	(set #hello-message
	(cat	"\n\nUne version de M2I tourne dans votre système.\n"
		"Ce script peut remettre à jour votre "
		"ancienne version, ou pour compléter votre installation.\n\n"
		"Par rapport à la version 5.51 :\n"
		"Cette nouvelle version offre de nouvelles fonctions comme "
		"la transparence des icônes, le 'remap' des images, "
		"les boutons, le colonnage des icônes et de très nombreuses "
		"autres améliorations.\n\n"))

	(set #install-which
	(cat	"\nQuelle(s) partie(s) de M2I voulez-vous installer "
        	"sur votre disque dur?\n"))

	(set #install-c0 "Fichiers de base")
	(set #install-c1 "Documentation")
	(set #install-c3 "Préférences")
	(set #install-c2 "Catalogue")
	(set #install-c4 "Scripts AREXX")
	(set #install-c5 "Motifs")
	(set #install-c6 "Répertoire Extra")
	(set #install-c7 "Reqtools.library")
	(set #install-c8 "Menu de démonstration")

	(set #install-icons "\nChoisissez le type d'icônes que vous voulez installer :")

	(set #selectdir "\nChoisissez l'endroit où le répertoire M2I va être créé.")

	(set #copylib "M2I a besoin de la reqtools.library pour fonctionner.")

	(set #update-deficons
	(cat	"\nLe script a détecté un répertoire DefIcons. Doit-il écraser "
		"les icônes qui s'y trouvent?"))
	(set #update-erase "Ecraser")
	(set #update-skip "Passer cette partie")

	(set #askupdate-prefs
	(cat	"\nLe script a détecté une ancienne version des préférences. "
		"Doit-il mettre à jour ces préférences pour être lisibles "
		"par la nouvelle version?"))
		
	(set #update-prefs "Mettre à jour")	

 )
 (
	(set #wrongversion
	(cat	"Your 'Installer' version on your amiga is too old!\n\nYou need "
		"at least 'Installer' V42.9, available on Aminet (ftp.wustl.edu)"))

	(set #bad-kick
	(cat	"\n\nSorry, you need Workbench 3.0 or higher to run M2I."))

	(set #hello-message
	(cat	"\n\nAn old version of M2I is running on your system.\n"
		"This script can update your old version or complete your "
		"installation.\n\n"
		"Since version 5.51:\n"
		"You have new features like icons transparency, pictures remap, "
		"buttons, column storage of icons, and lots of other improvements.\n\n"))

	(set #install-which
	(cat	"\nWhich parts of M2I would you like to install on your harddisk?\n"))

	(set #install-c0 "Program files")
	(set #install-c1 "Documentation")
	(set #install-c2 "Catalog")
	(set #install-c3 "Preferences")
	(set #install-c4 "AREXX Scripts")
	(set #install-c5 "Brushes")
	(set #install-c6 "Extra Drawer")
	(set #install-c7 "Reqtools.library")
	(set #install-c8 "Demo Menu")

	(set #install-icons "\nChoose the icon type you would like to install :")

	(set #selectdir "\nChoose the directory where the M2I drawer will be created.")

	(set #copylib "M2I needs reqtools.library to run.")

	(set #update-deficons
	(cat	"\nThe script found a drawer DefIcons. Shall it overwrite the existing "
		"icons in it?"))
	(set #update-erase "Overwrite")
	(set #update-skip "Skip this part")

	(set #askupdate-prefs
	(cat	"\nThe script found an old preferences file. Shall it update these "
		"preferences to be suitable for the new version?"))
		
	(set #update-prefs "Update")

 )
)


; ------------------------------------
; Check Installer & Kickstart Version
; ------------------------------------

(if (< @installer-version 2752521)
  (
    (message #wrongversion (all))
    (exit (quiet))
  )
)

(if (< (getversion "LIBS:version.library") (* 39 65536))
        (abort #bad-kick)
)

; ------------------------------
; Check Old Vers.
; ------------------------------

(set M2IOn (run "Tools/M2IOn" (safe)))
	(if	(= M2IOn 1)
		(message #hello-message (all))
	)


(welcome #welcome-message)


; ------------------------------
; What should I install?
; ------------------------------

(complete 0)
(set InstallOpt
	(askoptions (prompt #install-which)
        	(help @askoptions-help)
		(choices #install-c0 #install-c1 #install-c2 #install-c3
		#install-c4 #install-c5 #install-c6 #install-c7 #install-c8)
	)
)

; ------------------------------
; Icon Drawer
; ------------------------------
(set IconOpt
	(askchoice (prompt #install-icons)
		(help @askchoice-help)
		(choices "MagicWB" "NewIcons")
	)
)

(if (= IconOpt 0)
 (
 	(set icondir "Icons/MagicWB")
 	(set iconextra "MagicExtra")
 )        
 (
    	(set icondir "Icons/NewIcons")
    	(set iconextra "NIExtra")
 )
)


; ------------------------------
; Where?
; ------------------------------
(set destdir
	(askdir
	(prompt #selectdir)
	(help @askdir-help)
	(disk)
	(default @default-dest)
	)
)

(set @default-dest destdir)

; ------------------------------
; Create Drawer
; ------------------------------

(makedir (tackon destdir "M2I"))

; ------------------------------
; Drawer Icon
; ------------------------------
(copyfiles
	(source (tackon icondir "defdrawer.info"))
	(dest destdir)
	(newname "M2I.info")
)

(set destdir (tackon destdir "M2I"))
(complete 1)

; ------------------------------
; Programms
; ------------------------------

(if (BITAND InstallOpt 1)
(
	(copyfiles
		(source (tackon icondir "M2I5.info"))
		(dest destdir)
	)



	(if	(OR (= (database "cpu") "68000")
		(= (database "cpu") "68010"))

;======== Copy 68000 Version
	(
		(copyfiles
			(source "bin/M2I5_000")
			(dest destdir)
			(newname "M2I5")
			(optional "force")

		)
	)
;======== Copy 68020 Version
	(
		(copyfiles
			(source "bin/M2I5_020")
			(dest destdir)
			(newname "M2I5")
			(optional "force")
		)
	))

;======== DefIcons


	(if (exists (tackon destdir "deficons"))
	    (
		(if	(askbool
				(prompt #update-deficons)
				(help @askbool-help)
				(default 1)
				(choices #update-erase #update-skip)
			)
		    (
			(copyfiles
				(source icondir)
				(dest (tackon destdir "DefIcons"))
				(pattern "(def#?.info|gad#?.info)")
			)
		    )
		)
	     )
	     (
		(copyfiles
			(source icondir)
			(dest (tackon destdir "DefIcons"))
			(pattern "(def#?.info|gad#?.info)")
		)
		(copyfiles
			(source (tackon icondir "defdrawer"))
			(dest (tackon destdir "DefIcons"))
		)
	     )
	)



	(makedir (tackon destdir "DefIcons"))

	(delete (tackon destdir "deficons/iconify.??.info")
		(optional "force")
	)

	(copyfiles
		(source (tackon icondir "defdrawer.info"))
		(dest destdir)
		(newname "DefIcons.info")
	)


;======== M2IDefTexts

	(makedir (tackon destdir "Prefs"))

	(copyfiles
		(source (tackon icondir "defdrawer.info"))
		(dest destdir)
		(newname "Prefs.info")
	)

	(copyfiles
		(source "Prefs/M2IDefTexts")
		(dest (tackon destdir "Prefs"))
		(optional "force")
	)

;======== Old version

	;=== Update 5.51

	(if (exists (tackon destdir "prefs/M2I5.prefs") (noreq))
	(
	  (if (askbool
	  	(prompt #askupdate-prefs)
	  	(help @askbool-prefs)
	  	(default 1)
	  	(choices #update-prefs #update-skip)
	      )

	  (
			(copyfiles
				(source "Tools/M2IConvertPrefs51")
				(dest destdir)
			)
			(run (tackon destdir "M2IConvertPrefs51"))
			(delete (tackon destdir "M2IConvertPrefs51"))
			(rename
				(tackon destdir "prefs/M2I5.prefs.info")
				(tackon destdir "prefs/M2I5DSP.prefs.info"))
			(copyfiles
				(source (tackon icondir "defprefs.info"))
				(dest (tackon destdir "Prefs"))
				(newname "M2I5PENS.prefs.info")
			)
			(delete (tackon destdir "prefs/M2I5.prefs"))
	  ))

	))

	;=== Update 5.60
	(copyfiles
		(source "Tools/M2IConvertPrefs60")
		(dest destdir)
	)
	(run (tackon destdir "M2IConvertPrefs60"))
	(delete (tackon destdir "M2IConvertPrefs60"))


	(rename
		(tackon destdir "Prefs/M2ISND.prefs")
		(tackon destdir "Prefs/M2I5SND.prefs")
	)

	(rename
		(tackon destdir "Prefs/M2IMISC.prefs")
		(tackon destdir "Prefs/M2I5MISC.prefs")
	)
))

(complete 20)

; ------------------------------
; Documentation
; ------------------------------
(if (= @language "français")
 (
	(set guidepat ".fr.guide")
 )
 (
	(set guidepat ".eng.guide")
 )
) 	


(if (BITAND InstallOpt 2)
(

	(makedir (tackon destdir "Guides"))

	(copyfiles
		(source (tackon icondir "defdrawer.info"))
		(dest destdir)
		(newname "Guides.info")
	)

	(copyfiles
		(source "Guides")
		(dest (tackon destdir "Guides"))
		(pattern (cat "#?" guidepat))
	)

	(copyfiles
		(source (tackon icondir "guide.info"))
		(dest (tackon destdir "Guides"))
		(newname (cat "M2I" guidepat ".info"))
	)

	(copyfiles
		(source (tackon icondir "guide.info"))
		(dest (tackon destdir "Guides"))
		(newname (cat "M2IARexx" guidepat ".info"))
	)

	(copyfiles
		(source (tackon icondir "guide.info"))
		(dest (tackon destdir "Guides"))
		(newname (cat "M2IOnLine" guidepat ".info"))
	)

))

(complete 40)

; ------------------------------
; Preferences
; ------------------------------

(if (BITAND InstallOpt 8)
(

	(makedir (tackon destdir "Prefs"))

	(copyfiles
		(source (tackon icondir "defdrawer.info"))
		(dest destdir)
		(newname "Prefs.info")
	)

	(copyfiles
		(source "Prefs")
		(dest (tackon destdir "Prefs"))
		(pattern "M2I5#?.prefs")
	)

	(copyfiles
		(source (tackon icondir "defprefs.info"))
		(dest (tackon destdir "prefs"))
		(newname "M2I5DSP.prefs.info")
	)

	(copyfiles
		(source (tackon icondir "defprefs.info"))
		(dest (tackon destdir "prefs"))
		(newname "M2I5PENS.prefs.info")
	)

	(copyfiles
		(source (tackon icondir "defprefs.info"))
		(dest (tackon destdir "prefs"))
		(newname "M2I5SND.prefs.info")
	)

	(copyfiles
		(source (tackon icondir "defprefs.info"))
		(dest (tackon destdir "prefs"))
		(newname "M2I5MISC.prefs.info")
	)

))

(complete 50)

; ------------------------------
; Catalogs
; ------------------------------

(if (BITAND InstallOpt 4)
(

	(makedir (tackon destdir "Catalogs"))

	(copyfiles
		(source "Catalogs")
		(dest (tackon destdir "Catalogs"))
		(all)
	)

	; delete old
	(delete "Locale:catalogs/français/M2I.catalog")

))

(complete 60)

; ------------------------------
; ARexx
; ------------------------------

(if (BITAND InstallOpt 16)
(

	(makedir (tackon destdir "Rexx"))

	(copyfiles
		(source (tackon icondir "defdrawer.info"))
		(dest destdir)
		(newname "Rexx.info")
	)


	(copyfiles
		(source "Rexx")
		(dest (tackon destdir "Rexx"))
		(all)
	)

))

(complete 70)

; ------------------------------
; Patterns
; ------------------------------

(if (BITAND InstallOpt 32)
(

	(makedir (tackon destdir "Patterns"))

	(copyfiles
		(source (tackon icondir "defdrawer.info"))
		(dest destdir)
		(newname "Patterns.info")
	)

	(copyfiles
		(source "Patterns")
		(dest (tackon destdir "Patterns"))
		(all)
	)

))

(complete 80)

; ------------------------------
; Extra
; ------------------------------

(if (BITAND InstallOpt 64)
(
	(makedir (tackon destdir iconextra))

	(copyfiles
		(source (tackon icondir "defdrawer.info"))
		(dest destdir)
		(newname (cat iconextra ".info"))
	)

	(copyfiles
		(source iconextra)
		(dest (tackon destdir iconextra))
		(all)
	)
))

(complete 90)


; ------------------------------
; ReqTools
; ------------------------------

(if (BITAND InstallOpt 128)
(
	(copylib
		(prompt #copylib)
		(help @copylib-help)
		(source "libs/reqtools.library")
		(dest "libs:")
		(confirm)
	)
))

(complete 95)

; ------------------------------
; Demo File
; ------------------------------

(if (BITAND InstallOpt 256)
(
	(copyfiles
		(source "Tools/Demo.M2I")
		(dest destdir)
	)

	(copyfiles
		(source (tackon icondir "defproject.info"))
		(dest destdir)
		(newname "Demo.M2I.info")
	)

	(copyfiles
		(source "Tools/Demo.readme")
		(dest destdir)
	)

	(copyfiles
		(source "ReadMeFirst!.info")
		(dest destdir)
		(newname "Demo.readme.info")
	)
))

(complete 100)
