;EasyPatch Configuration script
;$VER: EasyConfigScript 1.22 



(set @default-dest "")

(set ver (/ @installer-version 65536))
(set rev (- @installer-version (* ver 65536)))

;/// ***** English


(set #Welcome		"Welcome to EasyConfig\nPrepare your requesters to be destroyed!")

(set #wrongOS  		"EasyPatch needs at least OS2.04 to run\n")

(set #MatchPrompt   "Please enter a pattern that matches\n \"%s\"\n")

(set #EPNotInstalled "Please run EasyPatch 1.2x before that script.")

(set #EPTooOld       "EasyPatch 1.2x is required for this script to work.")

(set #TooManyReqs    "Too many requesters on screen!\nPlease leave only one!")

(set #NoRequesters   "I cannot see any requester!\nPlease open one!")

(set #PattNoMatch    "Sorry, but \"%s\" doesn't match \"%s\".")

(set #GadsPrompt     "Please enter one of these gadgets:\n%s")

(set #UnknownGadget  "Unknown gadget \"%s\".")

(set #AskCfgPrompt   "Please select your EasyPatch configuration file.\nIf you don't have one simply click Continue.") 

(set #CreateCfg	     "Creating config file....");

;/// ***** Italiano

(IF (= @language "italiano")
(

(set #Welcome		"Benvenuto in EasyConfig\nPrepara i tuoi requesters ad essere distrutti!")

(set #wrongOS  		"EasyPatch necessita del Sistema Operativo 2.04\n per funzionare.\n")

(set #MatchPrompt    "Inserisci un pattern che corrisponda a\n \"%s\"\n")

(set #EPNotInstalled "Per piacere, lancia EasyPatch 1.2x prima di questo script.")

(set #EPTooOld       "Quest script richiede EasyPatch 1.2x per funzionare.")

(set #TooManyReqs    "Ci sono troppi requesters sullo schermo!\nLasciane uno solo!")

(set #NoRequesters   "Non vedo nessun requester!\nO sono miope o è meglio che tu ne apra uno :->!")

(set #PattNoMatch    "Sorry, but \"%s\" doesn't match \"%s\".")

(set #GadsPrompt     "Per piacere, inserici uno di questi gadgets:\n%s")

(set #UnknownGadget  "Gadget sconosciuto: \"%s\".")

(set #AskCfgPrompt   "Per piacere, seleziona il file di configurazione di EasyPatch.\nSe non ne hai uno, premi su Procedi.") 

(set #CreateCfg	     "Sto creando il file di configurazione....");

)
)


(IF (= @language "svenska")
(

(set #Welcome		"Välkommen till EasyPatch config\nFörbered de requstrar som skall kuvas!")

(set #wrongOS  		"EasyPatch kräver OS2.04+\n")

(set #MatchPrompt   "Ange ett matchande mönster\n \"%s\"\n")

(set #EPNotInstalled "Kör EasyPatch 1.2x före aktuellt skript.")

(set #EPTooOld       "EasyPatch 1.2x krävs för att detta skript skall fungera.")

(set #TooManyReqs    "För många requstrar!\nTag bort alla utom en!")

(set #NoRequesters   "Ingen requster funnen!\nÖppna en lämplig!")

(set #PattNoMatch    "\"%s\" matchar inte \"%s\".")

(set #GadsPrompt     "Aktivera en av följande knappar:\n%s")

(set #UnknownGadget  "Okänd knapp \"%s\".")

(set #AskCfgPrompt   "Specificera konfigurationsfil till EasyPatch.\nOm du inte har någon sådan, välj Continue.") 

(set #CreateCfg	     "Skapar konfigurationsfil...");

)
)


;----------------------------------------------------------------------------

;/// Checking environment
(set OS_ver (getversion "exec.library" (resident)))
(if (< OS_ver (* 37 65536)) (abort #wrongOS))


;----------------------------------------------------------------------------


(complete 0)

(message #Welcome)

(debug "EasyConfig - Start")



(set #Rc 1)

(complete 1)

(until (= #Rc 0)
(
	(set #Rc (run "EasyConfig"))
	
	(debug (cat "EasyConfig: " #Rc))

	(if (= #Rc 1)
		(abort #EPNotInstalled)
	)
	(if (= #Rc 2)
		(abort #EPTooOld)
	)
	(if (= #Rc 3)
		(message #TooManyReqs)
	)
	(if (= #Rc 4)
		(message #NoRequesters)
	)
)
)

(complete 10)

(onerror ((if (AND (>= ver 42) (>= rev 9))
(
	(delete "ENV:EasyPatch_#?" )
	(delete "T:EasyPatch.cfg")
)
;else
	(run "Delete >NIL: ENV:EasyPatch_#? T:EasyPatch.cfg")
)

))

(complete 15)

(set #ReqTitleEnv (getenv "EasyPatch_ReqTitle"  ))
(set #ReqTextEnv  (getenv "EasyPatch_ReqText"   ))
(set #ReqGadsEnv  (getenv "EasyPatch_ReqGadgets"))

;Strip \0

(set #ReqTitle (substr #ReqTitleEnv  0 (strlen #ReqTitleEnv)))
(set #ReqText  (substr #ReqTextEnv   0 (strlen #ReqTextEnv )))
(set #ReqGads  (substr #ReqGadsEnv   0 (strlen #ReqGadsEnv )))

(set #Go 0)


(complete 20)


(if (= #ReqGadsEnv "")
(
	(set #ReqGadPosEnv (getenv "EasyPatch_ReqPos"))
	(set #ReqGadNegEnv (getenv "EasyPatch_ReqNeg"))

	(set #ReqGadPos  (substr #ReqGadPosEnv   0 (strlen #ReqGadPosEnv )))
	(set #ReqGadNeg  (substr #ReqGadNegEnv   0 (strlen #ReqGadNegEnv )))
	
	(complete 25)

	(set #ReqGads (cat #ReqGadPos "|" #ReqGadNeg))

	(set #ReqGadDef #ReqGadPos)
)
;else
(set #ReqGadDef "")
)


(complete 30)

(until (= #Go 1)
(
	(set #MatchTitle
		(askstring
			(prompt (#MatchPrompt #ReqTitle))
			(default (cat "#?" (substr #ReqTitle 0 15) "#?"))
			(help @askstring-help)
		)
	)
	
	(complete 35)

	(if (= (patmatch #MatchTitle #ReqTitle) 0)
		(message (#PattNoMatch #MatchTitle #ReqTitle))
		(set #Go 1)
	)
)
)

(complete 40)

(set #Go 0)

(until (= #Go 1)
(
	(set #MatchText
		(askstring
			(prompt (#MatchPrompt #ReqText))
			(default (cat "#?" (substr #ReqText 0 15) "#?"))
			(help @askstring-help)
		)
	)

	(complete 45)

	(if (= (patmatch #MatchText #ReqText) 0)
		(message (#PattNoMatch #MatchText #ReqText))
		(set #Go 1)
	)
)
)

(complete 60)

(set #Go 0)

(until (= #Go 1)
(
	(set #Gadget
		(askstring
			(prompt (#GadsPrompt #ReqGads))
			(default #ReqGadDef)
			(help @askstring-help)
		)
	)

	(complete 65)

	(if (= (patmatch (cat "(" #ReqGads ")" ) #Gadget) 0)
		(message (#UnknownGadget #Gadget))
		(set #Go 1)
	)
)
)

(complete 70)

(if (not (exists "S:EasyPatch.List"))
(
	(set #CfgFile
		(askfile
			(prompt #AskCfgPrompt)
			(help @askfile-help)
			(default "S:EasyPatch.List")
		)
	)

	(complete 75)

	(if (= (fileonly #CfgFile) "")
		(set #CfgFile "S:EasyPatch.List")
	)

)
;else
	(set #CfgFile "S:EasyPatch.List")
)

(complete 80)

(debug "Config file: " #CfgFile)

(textfile
	(prompt  #CreateCfg)
	(dest 	 "T:EasyPatch.cfg")
	(include #CfgFile)
	(append  (cat "\""#MatchTitle"\" " "\""#MatchText"\" AT PRESSGAD=\""#Gadget"\"\n"))
)

(complete 90)

(copyfiles 
	(prompt  #CreateCfg)
	(source  "T:EasyPatch.cfg")
	(dest    (pathonly #CfgFile))
	(newname (fileonly #CfgFile))
)

(debug "Pattern for Title:" #MatchTitle)
(debug "Pattern for Text :" #MatchText )
(debug "Selected gadget  :" #Gadget    )

(complete 95)

(if (AND (>= ver 42) (>= rev 9))
(
	(delete "ENV:EasyPatch_#?" )
	(delete "T:EasyPatch.cfg")
)
;else
	(run "Delete >NIL: ENV:EasyPatch_#? T:EasyPatch.cfg")
)

(complete 100)

(debug "EasyConfig - End")

(exit (QUIET))
