
; TAB = 6


; #####  Globale Variablen  #####
(set #versi-old "4.4")
(set #versi-new "4.4b")
(set #versi-dat "26-May-1996")

(set #installmode 0)

(set #cfg-help
  (cat "Die angewählte Beispielkonfiguration wird in das MAILDEMON-Verzeichnis entpackt. "
	 "Bei Bedarf werden hierbei die Unterverzeichnisse \"MAILDEMON:Konfiguration/\" und "
	 "\"MAILDEMON:Files/\" automatisch erstellt.")
)
(set #not-inst "\n\n\n\n\n\nDer MAILDEMON wurde noch nicht installiert!")


; #####  Script-Start  #####
(welcome
  (if (= @installer-version "")
    (
	  (message
	    (cat "\n\nDieses Installer-Script benötigt den neuen Installer 43.1 (oder höher) von "
		   "Amiga Technologies. Sie finden ihn wie folgt:\n\nFODDER: +49-(0)3838-24177\n"
		   "Zugang: GAST (kein Paßwort)\nBrett: /.Supports/MAILDEMON\n\nAminet: util/misc")
	  )
	  (exit (quiet))
    )
  )
  (message (cat "\n\n\n\n\nMAILDEMON " #versi-new " [SHAREWARE]\n\nCopyright © " #versi-dat ' by\nMaik "BLiZZeR" Schreiber'))
  (message
    (cat "\nWerter MAILDEMON-Anwender, dies ist ein \"intelligentes\" Installationsscript. Alle "
	   "(De-)Installations-Aktion können Sie bequem über dieses Script regeln. Es versetzt "
	   "Sie in die Lage, jede einzelne Aktion zu steuern und zu überwachen. Vor jeder "
	   "schreibenden und löschenden Aktion kommt eine Sicherheitsabfrage, mit der Sie den "
	   "Vorgang auf Wunsch abbrechen können. Außerdem finden sie zu jeder Aktion eine "
	   "umfangreiche Hilfe, die Sie bei Fragen zu Rate ziehen können.\n\nViel Spaß noch :)")
  )
)

(while (= 1 1)
  (

    (set #installmode
	(askchoice
	  (prompt "Welchen Installationsmodus wünschen Sie?")
	  (choices (cat "Komplette Neuinstallation des MAILDEMON " #versi-new)
		     (cat "Update von Version " #versi-old " auf " #versi-new)
			    "Starten des Konfigkonverters"
			    "Starten von PMBS2Emp"
			    "Installation einer Beispielkonfiguration"
			    "Komplette Deinstallation des MAILDEMON"
			    "Beenden des Installers")
	  (default #installmode)
	  (help @askchoice-help)
	)
    )

    ; #####  Neuinstallation/Update  #####
    (if (OR (= #installmode 0) (= #installmode 1))
	(
	  (if (AND (= #installmode 1) (= (getassign "MAILDEMON") ""))
	    (message #not-inst)
	    (
		(if (= #installmode 0)
		  (
		    (set #dummy @default-dest)
		    (set #dest
			(askdir
			  (prompt "Wohin soll der MAILDEMON installiert werden?")
			  (help
			    (cat "Hier legen Sie fest, in welches Verzeichnis Sie den MAILDEMON installieren "
				   "möchten. Im angewählten Verzeichnis wird automatisch ein Unterverzeichnis "
				   "\"MAILDEMON\" angelegt.\nACHTUNG: Bitte installieren Sie den MAILDEMON "
				   "nicht über eine bereits vorhandene Installation! Möchten Sie den "
				   "MAILDEMON neu installieren, sollten Sie zuvor die Deinstallation "
				   "starten.\n\n"
				   @askdir-help)
			  )
			  (default #dummy)
			  (disk)
			)
		    )
		    (set #dest (tackon #dest "MAILDEMON"))
		    (makedir #dest
			(prompt "\n\n\n\n\n\nDas Unterverzeichnis \"MAILDEMON\" wird angelegt.")
			(infos)
			(confirm)
			(help @makedir-help)
		    )
		    (message "\n\n\n\n\n\nDer Assign \"MAILDEMON:\" wird jetzt angelegt."
			(help
			  (cat "Damit der MAILDEMON richtig funktioniert, benötigt er einen Assign "
				 "namens \"MAILDEMON:\". Wenn Sie diesen Assign jetzt anlegen lassen, "
				 "können Sie den MAILDEMON nach der Installation sofort benutzen.")
			)
		    )
		    (makeassign "MAILDEMON" #dest)
		  )
		  (set #dest "MAILDEMON:")
		)
		(copyfiles
		  (prompt "Kopieren der Dateien...")
		  (choices "MAILDEMON" "MAILDEMON-Prefs" "MAILDEMON.guide" "Konfigkonverter" "Register.txt"
			     "MAILDEMON.info" "MAILDEMON-Prefs.info" "MAILDEMON.guide.info" "Konfigkonverter.info" "Register.txt.info")
		  (help
		    (cat "Hier legen Sie fest, welche Dateien Sie in das MAILDEMON-Verzeichnis kopieren "
			   "lassen möchten. Grundsätzlich notwendig für die Arbeit des MAILDEMON sind nur "
			   "das Hauptprogramm selbst (\"MAILDEMON\") sowie der Voreinsteller (\"MAILDEMON-"
			   "Prefs\"). Alle weiteren Dateien sind für den Ablauf nicht notwendig.\n\n"
			   @copyfiles-help)
		  )
		  (source "")
		  (dest #dest)
		  (confirm)
		)
		(copyfiles
		  (prompt "Kopieren der Codierer...")
		  (choices "uuin" "Base64Encode")
		  (help
		    (cat "Diese beiden Programme werden zur UUcodierung (\"uuin\") und Base64-Codierung "
			   "(\"Base64Encode\") benötigt. Wenn Sie keine Codierung von Nachrichten wünschen, "
			   "brauchen Sie die Programme natürlich nicht zu installieren; sie sind für den "
			   "Ablauf nicht notwendig.\n\n"
			   @copyfiles-help)
		  )
		  (source "")
		  (dest "c:")
		  (confirm)
		)
		(if (= #installmode 0)
		  (
		    (makedir (tackon #dest "Konfiguration")
			(prompt "\n\n\n\n\n\nDas Unterverzeichnis \"Konfiguration\" wird angelegt.")
			(confirm)
			(help
			  (cat "Im Unterverzeichnis \"Konfiguration\" legt der MAILDEMON alle Konfigurations"
				 "dateien ab. Dieses Verzeichnis ist für den Ablauf unbedingt notwendig!\n\n"
				 @makedir-help)
			)
		    )
		    (startup 'MAILDEMON'
			(prompt "\n\n\n\n\nDer Assign \"MAILDEMON:\" wird in die User-Startup eingefügt.")
			(command (cat "Assign MAILDEMON: \"" #dest "\""))
			(help
			  (cat "Damit der MAILDEMON richtig funktioniert, benötigt er einen Assign "
				 "namens \"MAILDEMON:\". Der Einfachheit halber wird dieser Assign "
				 "normalerweise bereits beim Hochfahren des Rechners angelegt (in der "
				 "User-Startup). In Ihre User-Startup werden jetzt folgende Zeilen "
				 "eingefügt:\n\n;BEGIN MAILDEMON\nAssign MAILDEMON: \"" #dest "\"\n"
				 ";END MAILDEMON\n\n"
				 @startup-help)
			)
		    )
		  )
		)
		(message
		  (cat "Nach 2 Major-Updates habe ich mich nun entschlossen, alle weiteren Updates "
			 "kostenlos herauszubringen. Dies bedeutet für registrierte Anwender, daß sie von "
			 "allen neuen Features kostenfreien Gebrauch machen können. Allerdings bin ich in "
			 "der Situation, daß ich für meine Arbeit nicht belohnt werde. Jetzt meine Bitte "
			 "an Sie: Wenn Sie der Meinung sind, daß meine Arbeit entschädigt werden sollte, "
			 "können Sie mir eine Spende zukommen lassen (meine Bankverbindung finden Sie auf "
			 "der nächsten Seite). Sie helfen mir damit, die Entwicklung des MAILDEMON aufrecht "
			 "zu erhalten und weiter voranzutreiben.\nVielen Dank.")
		)
		(message
		  (cat "\nMeine Adresse:\n\n"
			 "Maik Schreiber\n"
			 "Ruschvitzstraße 19\n"
			 "18528 Bergen\n"
			 "FR Germany\n\n\n"
			 "Meine Bankverbindung:\n\n"
			 "Kontonummer: 214 09 11 (Maik Schreiber)\n"
			 "Bankleitzahl: 130 700 00 (Deutsche Bank)")
		)
	    )
	  )
	)
    )

    ; #####  Konfigkonverter	  #####
    (if (= #installmode 2)
	(if (= (getassign "MAILDEMON") "")
	  (message #not-inst)
	  (run "Konfigkonverter <>CON:0/11/640/189/Konfigkonverter")
	)
    )

    ; #####  PMBS2Emp  #####
    (if (= #installmode 3)
	(
	  (set #p2e
	    (askchoice
		(prompt "Wie soll PMBS2Emp gestartet werden?")
		(choices "Umleitung in eine .emp-Datei"
			   "Umleitung in ein Fenster"
			   "Exit")
		(help
		  (cat "Mit dem Hilfsprogramm \"PMBS2Emp\" ist es möglich, die Brettliste des "
			 "Mailboxprogramms \"Prometheus\" in eine für den MAILDEMON zugeschnittene "
			 "Form zu bringen (Empfängergruppen).\nACHTUNG: Der Server muß während des "
			 "Starts von \"PMBS2Emp\" aktiv sein!\n\n"
			 @askchoice-help)
		)
	    )
	  )
	  (if (OR (= #p2e 0) (= #p2e 1))
	    (
		(set #pattern
		  (askstring
		    (prompt "\n\n\nBitte ein Muster eingeben:")
		    (default "#?")
		    (help
			(cat "PMBS2Emp ist ab der Version 1.2 in der Lage, Bretter nach einem Muster "
			     "auszugeben, z.B. \"#?WERB#?\". Geben Sie hier bitte das gewünschte Muster "
			     "ein. Ist das Muster leer, wird automatisch \"#?\" angenommen, also alle "
			     "Bretter.")
		    )
		  )
		)
		(if (= #p2e 0)
		  (set #dir
		    (askfile
			(prompt "In welche Datei soll die Ausgabe umgeleitet werden?")
			(help @askfile-help)
			(default "Bretter.emp")
		    )
		  )
		  (set #dir "CON:0/11/640/189/PMBS2Emp")
		)
		(run "LZX e PMBS2Emp.lzx RAM: PMBS2Emp")
		(run (cat "RAM:PMBS2Emp >" #dir " " #pattern))
		(delete "RAM:PMBS2Emp")
	    )
	  )
	)
    )

    ; #####  Beispielkonfiguration	    #####
    (if (= #installmode 4)
	(
	  (if (= (getassign "MAILDEMON") "")
	    (message #not-inst)
	    (
		(set #konfig
		  (askchoice
		    (prompt "Welche Beispielkonfiguration soll installiert werden?")
		    (choices "Prometheus"
				 "FastCall"
				 "Connectline"
				 "Exit")
		    (help
			(cat "Für die Mailboxprogramme \"Prometheus\", \"FastCall\" und \"Connectline\" "
			     "liegen Beispielkonfigurationen vor. Wählen Sie hier, welche dieser Beispiel"
			     "konfigurationen Sie installieren möchten.\nACHTUNG: Bevor Sie eine "
			     "Beispielkonfiguration installieren, sollte der MAILDEMON installiert "
			     "worden sein!\n\n"
			     @askchoice-help)
		    )
		  )
		)
		(if (= #konfig 0)
		  (run "LZX <>CON:0/11/640/189/Beispielkonfiguration x CfgPrometheus.lzx MAILDEMON:"
		    (prompt "\n\n\n\n\nInstalliere jetzt die Beispielkonfiguration für \"Prometheus\".")
		    (help #cfg-help)
		    (confirm)
		  )
		)
		(if (= #konfig 1)
		  (run "LZX <>CON:0/11/640/189/Beispielkonfiguration x CfgFastCall.lzx MAILDEMON:"
		    (prompt "\n\n\n\n\nInstalliere jetzt die Beispielkonfiguration für \"FastCall\".")
		    (help #cfg-help)
		    (confirm)
		  )
		)
		(if (= #konfig 2)
		  (run "LZX <>CON:0/11/640/189/Beispielkonfiguration x CfgConnectline.lzx MAILDEMON:"
		    (prompt "\n\n\n\n\nInstalliere jetzt die Beispielkonfiguration für \"Connectline\".")
		    (help #cfg-help)
		    (confirm)
		  )
		)
	    )
	  )
	)
    )

    ; #####  Deinstallation  #####
    (if (= #installmode 5)
	(
	  (set #dir (getassign "MAILDEMON"))
	  (if (= #dir "")
	    (message #not-inst)
	    (
		(if (= (askbool
			   (prompt "\n\n\n\n\nSoll der MAILDEMON wirklich deinstalliert werden?")
			   (help "")
			   (default 0)
			 ) 1)
		  (
		    (makeassign "MAILDEMON")
		    (delete #dir (all))
		    (delete #dir (info))
		    (message
			(cat "\n\nBei der Installation wurde in Ihrer User-Startup ein Assign eingefügt. "
			     "Um diesen zu entfernen, müssen Sie die Datei s:User-Startup in einen "
			     "Editor laden und folgende Zeilen entfernen:\n\n;BEGIN MAILDEMON\n"
			     "Assign MAILDEMON: \"" #dir "\"\n;END MAILDEMON\n\nDamit ist die "
			     "Deinstallation dann abgeschlossen.")
		    )
		  )
		)
	    )
	  )
	)
    )

    ; #####  Ente  #####
    (if (= #installmode 6) (exit (quiet)))
  )
)

