; ObjectArchive Installation Script

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

(set @default-dest "SYS:")
(complete 0)

(set #NeedV37
	(cat
		"ObjectArchive requires AmigaOS 2.0 or higher."
	)
)
(set #introduction
	(cat
		"Your are about to install ObjectArchive and related files into your system.\n"
	)
)

(set #AskDocsDest
	(cat
		"Please select directory where to copy documentations."
	)
)

(set #EditStartup
	(cat
		"Some required commands will be added to your \"s:user-startup\" file."
	)
)

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


(set OSVersion (/ (getversion) 65536))

(if (< OSVersion 37)
	(abort #NeedV37)
)

(message #introduction)

(set DocsDir
	(askdir
		(prompt #AskDocsDest)
		(help @askdir-help)
		(default "SYS:")
	)
)

(if (NOT (exists "SYS:Classes" (noreq)))
(
	(makedir
		"SYS:Classes"
	)
	(run
		"Assign LIBS: SYS:Classes ADD"
	)
	; Add the Assign command to Startup-sequence
	(startup "ObjectArchive"
		(prompt #EditStartup)
		(help @startup-help)
		(command "Assign add LIBS: SYS:Classes\n")
	)
))

(if (<> (exists "SYS:Classes/Archives" (noreq)))
	(makedir
		"SYS:Classes/Archives"
	)
)

(if (<> (exists "DEVS:Archives" (noreq)))
	(makedir
		"DEVS:Archives"
	)
)

(if (<> (exists "ENV:Archives" (noreq)))
	(makedir
		"ENV:Archives"
	)
)

(if (<> (exists "ENVARC:Archives" (noreq)))
	(makedir
		"ENVARC:Archives"
	)
)

;========= Libraries ==========

(copylib
	(help @copylib-help)
	(source "libs/archive.library")
	(dest "LIBS:")
)
(copylib
	(help @copylib-help)
	(source "libs/whatis.library")
	(dest "LIBS:")
)
(if (NOT (exists "S:FileTypes" (noreq)))
	(copyfiles
		(help @copyfiles-help)
		(source "S/FileTypes")
		(dest "S:")
	)
)	

;========= Objects ============

(foreach "Classes/Archives" "~(#?.info)"
	(copylib
		(help @copylib-help)
		(source (tackon "Classes/Archives" @each-name))
		(dest "SYS:Classes/Archives")
	)
)

;======= Archive types ========

(foreach "Devs/Archives" "~(#?.info)"
	(copyfiles
		(help @copyfiles-help)
		(source (tackon "Devs/Archives" @each-name))
		(dest "DEVS:Archives")
		(infos)
	)
)

;============ Env =============

(foreach "Env/Archives" "#?"
	(copyfiles
		(help @copyfiles-help)
		(source (tackon "Env/Archives" @each-name))
		(dest "ENV:Archives")
	)
)

(foreach "Env/Archives" "#?"
	(copyfiles
		(help @copyfiles-help)
		(source (tackon "Env/Archives" @each-name))
		(dest "ENVARC:Archives")
	)
)

;========= Commands ===========

(copyfiles
	(help @copyfiles-help)
	(source "C/AddArchive")
	(dest "C:")
)

(copyfiles
	(help @copyfiles-help)
	(source "C/MountArchive")
	(dest "C:")
)

(copyfiles
	(help @copyfiles-help)
	(source "C/UnMount")
	(dest "C:")
)

;============ Docs ============

(foreach "Docs" "#?"
	(copyfiles
		(help @copyfiles-help)
		(source (tackon "Docs" @each-name))
		(dest DocsDir)
		(infos)
	)
)

(if (< OSVersion 39)
	(tooltype
		(dest (tackon DestDir "Docs/ObjectArchive_User.guide"))
		(setdefaulttool "C:AmigaGuide")
	)
)

(complete 100)
(exit)

