; #######################################################
; #
; #   MUIVideo-Install
; #   $VER: 2.25 (15.06.98)
; #   © 1996-98 by Michael Herrmann
; #   mice@amclust.de
; #   - AMCLUST -
; #
; #######################################################

; #######################################################
; # setup language-strings
; #######################################################
; # german
; #######################################################

(procedure p_deutsch
    (set #true  (cat "Ja"))
    (set #false (cat "Nein"))
    (set #work1 (cat "Update"))
    (set #work2 (cat "Neuinstallation"))
    (set #work3 (cat "Umbenennen"))
    (set #work4 (cat "Löschen"))

    (set #falsekick
    (cat "\nMUIVideo, MUINames und MUITapes benoetigen "
         "zwingend OS3.0 oder höher."
    ))

    (set #falseinstaller
    (cat "\nDieses Script benötigt einen Installer der "
         "Version V43.2 oder höher. Die Version 43.2 des "
         "Installers ist auf der Aminet-CD 16 zu finden !"
    ))

    (set #info1
    (cat "\nDieses Script installiert \"MUIVideo\"  und alle "
         "dazugehörigen Dateien auf Ihre Festplatte oder "
         "fertigt ein Update auf eine bereits existierende "
         "MUIVideo-Installation an. Bevor es aber weitergeht, "
         "wird Ihnen eine Textdatei angezeigt, die Sie über "
         "die wichtigsten Veränderungen und Neuerungen von "
         "\"MUIVideo\"  informiert."
    ))

    (set #info2
    (cat "\nBei der Neuinstallation wird ein Verzeichnis mit "
         "Namen \"MUIVideo\"  angelegt in das alle wichtigen "
         "Programmteile kopiert werden. Existiert auf dem "
         "gleichen Pfad bereits eine MUIVideo-Installation, "
         "so wird das alte Verzeichnis nach \"MUIVideo_old\" "
         " umbenannt, so dass keinerlei alte Daten verloren gehen."
         "\n\nSoll ein Update vorgenommen werden, so werden "
         "nur alle neuen Programmteile, Dokumentationen "
         "und Katalogfiles installiert. Auch hier ist sichergestellt, "
         "dass nichts verloren gehen und Ihre Einstellungen "
         "und Daten unverändert bleiben. "
    ))

    (set #choice1
    (cat "\nWollen Sie nun ein Update auf eine bereits "
         "vorhandene MUIVideo-Installation oder eine "
         "komplette Neuinstalltion vornehmen ? "
    ))

    (set #updateinfo
    (cat "\nBitte wählen Sie nun den Pfad, bzw. das Verzeichnis "
         "aus, in dem sich das MUIVideo-Hauptverzeichnis befindet\n"
    ))

    (set #installinfo
    (cat "\nBitte wählen Sie nun das Zielverzeichnis für die "
         "Neuinstallation aus. Ein Verzeichnis \"MUIVideo\" "
         " wird dort angelegt.\n"
    ))

    (set #createdirs
    (cat "\nEs werden nun alle benötigten Verzeichnisse auf dem "
         "Zielpfad angelegt....."
    ))

    (set #copymain      "\nKopieren von MUIVideo")
    (set #copymuitapes  "\nKopieren von MUITapes")
    (set #copymuinames  "\nKopieren von MUINames")
    (set #copylocal     "\nKopiere Locale-Files")
    (set #copyguides    "\nKopieren von MUIVideo.guide")
    (set #copyinfos     "\nKopieren der Info-Dateien")
    (set #copyarexx     "\nKopieren der ARexx-Scripte")
    (set #copybuttons   "\nKopieren der Buttons")
    (set #copysrexx     "\nKopieren der System-Scripte")
    (set #copyprefs     "\nKopieren der Prefs-Dateien")
    (set #copydata      "\nKopieren der Daten-Files")

    (set #copyoldmainprefs      "\nKopieren der alten Prefs-Dateien von MUIVideo")
    (set #copyoldmaindata       "\nKopieren der alten Daten von MUIVideo")
    (set #copyoldmainrexx       "\nKopieren der alten ARexx-Scripts von MUIVideo")
    (set #copyoldmuitapesprefs  "\nKopieren der alten Prefs-Dateien von MUITapes")
    (set #copyoldmuitapesrexx   "\nKopieren der alten ARexx-Scripts von MUITapes")
    (set #copyoldmuinamesprefs  "\nKopieren der alten Prefs-Dateien von MUINames")
    (set #copyoldmuinamesdata   "\nKopieren der alten Daten von MUINames")
    (set #copyoldmuinamesrexx   "\nKopieren der alten ARexx-Scripts von MUINames")
    (set #copykeyfile           "\nKopiere das Keyfile")

    (set #askforlanguages
    (cat "\nMöchten Sie noch weitere der unten aufgeführten "
         "Sprachen für \"MUIVideo\"  installieren."
    ))

    (set #askformuitapes
    (cat "\nSoll nun das Zusatzprogramm \"MUITapes\"  installiert "
         "werden ? \"MUITapes\"  ergänzt das Filmorientierte \"MUIVideo\""
         "  um die Möglichkeit, Videosammlungen auch Kassettenorientiert "
         "verwalten zu können."
    ))

    (set #askformuinames
    (cat "\nSoll nun das Zusatzprogramm \"MUINames\"  installiert "
         "werden ? \"MUINames\"  ergänzt die Eingabemaske von \"MUIVideo\""
         "  um die Möglichkeit, Namenseingaben bequem per Mausklick "
         "zu machen. \"MUINames\"  dient dabei ebenfalls Datenverwaltung "
         "unterschiedlicher Namenslisten z.B. fuer Regisseure usw.."
    ))

    (set #askforolddata
    (cat "\nSollen die Daten der alten MUIVideo-Installation "
         "übernommen werden ? Dies betrifft ein evtl. vorhandenes "
         "Keyfile, Ihre Filmdaten von \"MUIVideo\", die Daten von "
         "\"MUITapes\"  und \"MUINames\", die ARexx-Scripts und die "
         "Einstellungen."
    ))

    (set #oldmvexists
    (cat "\nAuf dem Zielpfad befindet sich bereits ein Backup "
         "einer MUIVideo-Installation. Um fortfahren zu können "
         "muss dieses umbenannt oder gelöscht werden !"
         "\n\nWas soll mit dem alten Backup geschehen ?"
    ))

    (set #oldmv
    (cat "\nAuf dem Zielpfad wurde eine MUIVideo-Installation "
         "gefunden. Dieses wird im folgenden nach \"MUIVideo_old\" "
         " umbenannt, so dass keine vorhandenen Daten verloren gehen."
    ))

    (set #askfornewname
    (cat "\nBitte einen neuen Namen eingeben oder "
         "den voreingestellten Namen bestätigen."
    ))

    (set #askfordel1 "\nSoll das Verzeichnis\n\n > ")
    (set #askfordel2
    (cat " <\n\njetzt gelöscht werden ?\n"
         "Alle darin enthaltenen Daten gehen unwiderruflich verloren !"
    ))

    (set #error1
    (cat "\n Auf dem von Ihnen angegebenen Pfad konnte kein "
         "Verzeichnis namens \"MUIVideo\"  gefunden werden. "
         "Bitte stellen Sie sicher, dass sich das Hauptverzeichnis "
         "von \"MUIVideo\"  auch wirklich in dem von Ihnen gewählten "
         "Pfad befindet. Wählen Sie nicht dass MUIVideo-Verzeichnis "
         "selbst sondern dass übergeordnete Verzeichnis an !"
    ))

    (set verinfo1 "\n\nBereits installierte Version %ld.%ld\n")
    (set verinfo2 "Zu installierende Version %ld.%ld")
    (set verinfo3 "\n\nBisher nicht installiert\n")

    (set #updatemuimain  "\nUpdate von MUIVideo\n")
    (set #updatemuitapes "\nUpdate von MUITapes\n")
    (set #updatemuinames "\nUpdate von MUINames\n")


    (set #destination-help
    (cat "\nIn diesem Fenster können Sie das Zielverzeichnis für "
         "die Installation von \"MUIVideo\"  auswählen. Bei der "
         "Neuinstallation wird ein neues Verzeichnis namens "
         "\"MUIVideo\" angelegt. Sollte sich auf dem Pfad bereits "
         "ein Verzeichnis mit diesem Namen befinden, wird es in "
         "\"MUIVideo_old\"  umbenannt. Bei einem Update achten Sie "
         "bitte darauf, dass Sie den Pfad angeben, in dem sich das "
         "Hauptverzeichnis von \"MUIVideo\"  befindet, wählen Sie nicht "
         "das MUIVideo-Verzeichnis selbst an sondern das übergeordnete. "
    ))

    (set #newname-help
    (cat "\nBei einer früheren Neuinstallation von \"MUIVideo\"  wurde "
         "ein Backup der alten Installation angelegt. Diese Backups "
         "werden vom Installationsprogramm standardmaessig \"MUIVideo_old\" "
         " genannt. Auf dem Zielpfad befindet sich noch so ein Backup. "
         "Da auch bei dieser Installation wieder ein Backup angelegt "
         "werden soll, ist es unumgänglich, dass alte Backup umzubenennen "
         "oder zu löschen. Sie können nun in dem Texteingabefeld einen neuen "
         "Namen für das Backup angeben oder den vorgeschlagenen übernehmen. "
    ))

    (set #deloldbackup-help
    (cat "\nWenn Sie die Frage, ob das Backup gelöscht werden soll "
         "mit \"löschen\"  bestätigen, so gehen alle Daten des Backups "
         "unwiderruflich verloren. Wenn Sie sich nicht sicher sind, "
         "ob das Backup nicht doch noch wichtige Daten enthält, wählen "
         "Sie \"Diesen Teil überspringen\", Sie haben dann erneut die "
         "Möglichkeit, dass alte Backup umzubennen oder zu löschen"
    ))

    (set #versions-help
    (cat "\nBei jedem Update von \"MUIVideo\" werden grundsätzlich "
         "die Versionen der einzelnen Programmteile mit denen der "
         "bereits installierten verglichen. Sie können so leichter "
         "entscheiden, ob Sie ein Programmteil installieren möchten "
         "oder nicht. Bitte beachten Sie aber, dass es auch möglich "
         "ist, neuere Programmteile durch ältere zu ersetzen. "
         "Schauen Sie sich die ausgegebenen Versionsnummern also "
         "genau an, bevor Sie einen Kopiervorgang bestätigen."
    ))

    (set #endmessage
    (cat "\nWir wünschen Ihnen nun viel Spass und Erfolg mit "
         "\"MUIVideo\". Sollten Sie dieses Programm nutzen und "
         "noch nicht registriert sein, so holen Sie dieses "
         "bitte nach. Sie unterstützen so den Shareware-Gedanken, "
         "und leisten Ihren Beitrag, für gute Amiga-Software"
         "\n\nWenn Sie schon zum 2364. Mal Ihre Daten in \"MUIVideo\"  "
         "eingegeben haben und es noch nicht klappt, mail an: "
         "chriskay@a2.amclust.de"
         "\n\nWenn Sie den Autor des Installer-Scriptes verdeubeln wollen "
         "schreiben Sie an:"
         "\nmice@amclust.de"
         "\n\nFür die Übersetzungen ins Englische kann enthauptet werden:"
         "\nvolker@a2.amclust.de"
    ))
)

; #######################################################
; # setup language-strings
; #######################################################
; # english
; #######################################################

(procedure p_english
    (set #true  (cat "Yes"))
    (set #false (cat "No"))
    (set #work1 (cat "Update"))
    (set #work2 (cat "New installation"))

    (set #falsekick
    (cat "\nMUIVideo, MUINames and MUITapes "
         "require OS3.0 or higher."
    ))

    (set #falseinstaller
    (cat "\nThis installer-script requires an installer of "
         "version V43.2 or higher. Version 43.2 of "
         "the installer can be found on Aminet-CD 16 !"
    ))

    (set #info1
    (cat "\nThis script installs MUIVideo and all "
         "required data on your harddisk or "
         "updates an existing MUIVideo-installation."
         "But at first, let's have a look  at the changes "
         "and news of \"MUIVideo\"."
    ))

    (set #info2
    (cat "\nIf you decide for a new installation a directory "
         "called \"MUIVideo\" will be created in which all important"
         "pats of the program will be copied. If there exists "
         "a MUIVideo installationin this path already, "
         "hte old directorywill be renamed to \"MUIVideo_old\", "
         "so that no old data are lost."
         "\n\nIf you decide for an update, only the new "
         "pats of the program, documentations and "
         "catalogfiles will be installed. Your old data and "
         "prefs remain unchanged "
    ))

    (set #choice1
    (cat "\nDo you want to update an existing "
         "MUIVideo installation or do you want "
         "a new installation ? "
    ))

    (set #updateinfo
    (cat "\nPlease select the path or directory "
         "in which the MUIVideo directory is located.\n"
    ))

    (set #installinfo
    (cat "\nPlease select the directory for the "
         "new installation. A directory \"MUIVideo\" "
         "will be created.\n"
    ))

    (set #oldmv
    (cat "\nAn old MUIVideo directory has been "
         "found. This will be renamed to \"MUIVideo_old\"."
    ))

    (set #createdirs
    (cat "\nCreating required directories... "
    ))

    (set #copymain      "\nCopying  MUIVideo")
    (set #copymuitapes  "\nCopying  MUITapes")
    (set #copymuinames  "\nCopying  MUINames")
    (set #copylocal     "\nCopying  locale-Files")
    (set #copyguides    "\nCopying  MUIVideo.guide")
    (set #copyinfos     "\nCopying  info-data")
    (set #copyarexx     "\nCopying  ARexx-scripts")
    (set #copysrexx     "\nCopying  System-scripts")
    (set #copyprefs     "\nCopying  Prefs-data")
    (set #copydata      "\nCopying  Data-files")

    (set #askforlanguages
    (cat "\nYou now have the possibility to "
         "install more languages for \"MUIVideo\"."
    ))

    (set #askformuitapes
    (cat "\nDo you want to install the plug-in \"MUITapes\""
         "now ? \"MUITapes\" expands the film oriented \"MUIVideo\""
         " to the possibility of a tape oriented database."
    ))

    (set #askformuinames
    (cat "\nDo you want to install the plug-in \"MUINames\""
         "now ? \"MUINames\" expands the inputmask of \"MUIVideo\","
         "you can enter names with simple click of your mouse.   "
         "MUINames is also a database for names."
    ))

    (set #askforolddata
    (cat "\nDo you want to keep the data of your"
         "old MUIVideo installation ?"
         "This concernes your keyfile, the"
         "filmdata and the prefs."
    ))

    (set #error1
    (cat "\nAn old directory called \"MUIVideo\" could "
         "not be found in this path. Please keep in mind "
         "not to select the directory of MUIVideo but "
         "the parent directory."
    ))

    (set verinfo1 "\n\nInstalled Version %ld.%ld\n")
    (set verinfo2 "Version to be installed%ld.%ld")
    (set verinfo3 "\n\nNot installed.\n")

    (set #destination-help
    (cat "\nPlease select the directory where MUIVideo will "
         "be installed. During a new installation a directory "
         "called \"MUIVideo\" will be created. If a directory with"
         "this name exists in this path, it will be renamed in "
         "\"MUIVideo_old\". If you are updating an existing "
         "installation, please keep in mind not to select the "
         "directory of MUIVideo but the parent directory. "
    ))

    (set #newname-help
    (cat "\nBei einer früheren Neuinstallation von \"MUIVideo\"  wurde "
         "ein Backup der alten Installation angelegt. Diese Backups "
         "werden vom Installationsprogramm standardmaessig \"MUIVideo_old\" "
         " genannt. Auf dem Zielpfad befindet sich noch so ein Backup. "
         "Da auch bei dieser Installation wieder ein Backup angelegt "
         "werden soll, ist es unumgänglich, dass alte Backup umzubenennen "
         "oder zu löschen. Sie können nun in dem Texteingabefeld einen neuen "
         "Namen für das Backup angeben oder den vorgeschlagenen übernehmen. "
    ))

    (set #deloldbackup-help
    (cat "\nWenn Sie die Frage, ob das Backup gelöscht werden soll "
         "mit \"löschen\"  bestätigen, so gehen alle Daten des Backups "
         "unwiderruflich verloren. Wenn Sie sich nicht sicher sind, "
         "ob das Backup nicht doch noch wichtige Daten enthält, wählen "
         "Sie \"Diesen Teil überspringen\", Sie haben dann erneut die "
         "Möglichkeit, dass alte Backup umzubennen oder zu löschen"
    ))

    (set #versions-help
    (cat "\nBei jedem Update von \"MUIVideo\" werden grundsätzlich "
         "die Versionen der einzelnen Programmteile mit denen der "
         "bereits installierten verglichen. Sie können so leichter "
         "entscheiden, ob Sie ein Programmteil installieren möchten "
         "oder nicht. Bitte beachten Sie aber, dass es auch möglich "
         "ist, neuere Programmteile durch ältere zu ersetzen. "
         "Schauen Sie sich die ausgegebenen Versionsnummern also "
         "genau an, bevor Sie einen Kopiervorgang bestätigen."
    ))

    (set #endmessage
    (cat "\nWe wish a lot of fun and pleasure with MUIVideo. "
         "If you use this program without registering, please "
         "read the documentation how to become a registered "
         "user. Please support shareware ! "
         "If you entered your films for the 2634. time and nothing "
         "works, please write to: "
         "chriskay@a2.amclust.de"
         "If you want to send the author of the installer-script "
         "to hell, please write to:"
         "\nmice@amclust.de"
         "\n\nFor the english translation, please chop the head of:"
         "\nvolker@a2.amclust.de"
         "Positive reactions are also welcome :) "
    ))
)

; #######################################################
; # getversions-procedure ( forget the bloody (copylib) )
; #######################################################

; arg1 = means the name of actual file
; arg2 = means the name of older file

(procedure p_getversions arg1 arg2
    (set aktversion (getversion arg1))
    (set aktver (/ aktversion 65536))
    (set aktrev (- aktversion (* aktver 65536)))
    (set oldversion (getversion (tackon mvdest arg2)))
    (set oldver (/ oldversion 65536))
    (set oldrev (- oldversion (* oldver 65536)))
)

; #######################################################
; # deloldbackup-procedure
; #######################################################

; arg1 = path to workon

(procedure p_deloldbackup arg1
    (set vote
        (askbool
            (prompt #oldmvexists)
            (choices #work3 #work4)
            (help @askbool-help)
        )
    )
    (if (= 1 vote)
        (
            (set nname
                (askstring
                    (prompt #askfornewname)
                    (default "MUIVideo_old1")
                    (help #newname-help)
                )
            )
            (rename arg1 (tackon mvpath nname)
                (prompt #askforrename)
                (help #newname-help)
            )
        )
        (
            (delete arg1
                (prompt #askfordel1 arg1 #askfordel2)
                (all)
                (infos)
                (confirm "average" "expert")
                (optional "askuser")
                (help #deloldbackup-help)
            )
        )
    )
)


; #######################################################
; # check language
; #######################################################

(If (= @language "deutsch")
    (
        (p_deutsch)
    )
    (
        (p_english)
    )
)

; #######################################################
; # test kick- & installer-version
; #######################################################

(if (< (/ (getversion) 65536) 39)
    (abort #falsekick)
)

(If (= 0 @installer-version)
    (abort #falseinstaller)
)

; #######################################################
; # view infos
; #######################################################

(message #info1)
; (run "run >nil: SYS:Utilities/MultiView" #infotxt (prompt #readme))
(message #info2)

; #######################################################
; # choose work
; #######################################################

(set work
    (askbool
        (prompt #choice1)
        (choices #work1 #work2)
        (help #info2)
    )
)

; #######################################################
; # choose destination
; #######################################################

(If (= 1 work)
    (
        (set mvpath
            (askdir
                (prompt #updateinfo)
                (help #destination-help)
                (default "work:")
            )
        )
    )
    (
        (set mvpath
            (askdir
                (prompt #installinfo)
                (help #destination-help)
                (default "work:")
            )
        )
    )
)

(set mvdest (tackon mvpath "MUIVideo"))
(set @default-dest mvdest)

; #######################################################
; # update procedure
; #######################################################

(if (= 1 work)
    ( ; update start

        ; #######################################################
        ; # update: MUIVideo main, modules & catalogs
        ; #######################################################
        ; # MUIVideo
        ; #######################################################

        (if (exists mvdest)
            (
                (p_getversions "/MUIVideo" (tackon mvdest "MUIVideo"))
                (if (= 1 (askbool (prompt (#updatemuimain) (if (= 0 oldversion) ((verinfo3)) ((verinfo1 oldver oldrev))) (verinfo2 aktver aktrev)) (help #versions-help)))
                    (
                        (copyfiles
                            (prompt #copymain)
                            (source "/MUIVideo")
                            (dest mvdest)
                            (if (<> (exists (tackon mvdest "MUIVideo.info")) (infos)))
                            (help @copyfiles-help)
                        )
                        (if (= @language "english")
                            (
                                (copyfiles
                                    (prompt "Update MUIVideo Catalogs")
                                    (source "/catalogs/english")
                                    (dest (tackon mvdest "catalogs/english"))
                                    (pattern "(#?.catalogs)")
                                    (help @copyfiles-help)
                                )
                            )
                            (
                                (copyfiles
                                    (prompt "Update der MUIVideo Katalog-Files")
                                    (source "/catalogs")
                                    (dest (tackon mvdest "catalogs"))
                                    (pattern "(#?.cd)")
                                    (confirm "expert")
                                    (help @copyfiles-help)
                                )
                            )
                        )
                    )
                )

                ; #######################################################
                ; # MUITapes
                ; #######################################################

                (if (exists (tackon mvdest "MUITapes"))
                    (
                        (p_getversions "/MUITapes/MUITapes" (tackon mvdest "MUITapes/MUITapes"))
                        (if (= 1 (askbool (prompt ("\nUpdate von MUITapes\n") (if (= 0 oldversion) ((verinfo3)) ((verinfo1 oldver oldrev))) (verinfo2 aktver aktrev)) (help #versions-help)))
                            (
                                (copyfiles
                                    (prompt #copymuitapes)
                                    (source "/MUITapes")
                                    (dest (tackon mvdest "MUITapes"))
                                    (pattern "(MUITapes|SRexx|#?.script)")
                                    (infos)
                                    (help @copyfiles-help)
                                )
                                (if (= @language "english")
                                    (copyfiles
                                        (prompt "Update MUITapes Catalogs")
                                        (source "/MUITapes/catalogs/english")
                                        (dest (tackon mvdest "MUITapes/catalogs"))
                                        (help @copyfiles-help)
                                    )
                                    (copyfiles
                                        (prompt "Update der MUITapes Kataloge")
                                        (source "/MUITapes/catalogs")
                                        (dest (tackon mvdest "MUITapes/catalogs"))
                                        (pattern "(#?.cd)")
                                        (help @copyfiles-help)
                                    )
                                )
                            )
                        )
                    )
                )

                ; #######################################################
                ; # MUINames
                ; #######################################################

                (if (exists (tackon mvdest "MUINames"))
                    (
                        (p_getversions "/MUINames/MUINames" (tackon mvdest "MUINames/MUINames"))
                        (if (= 1 (askbool (prompt (#updatemuinames) (if (= 0 oldversion) ((verinfo3)) ((verinfo1 oldver oldrev))) (verinfo2 aktver aktrev)) (help #versions-help)))
                            (
                                (copyfiles
                                    (prompt #copymuinames)
                                    (source "/MUINames")
                                    (dest (tackon mvdest "MUINames"))
                                    (pattern "(MUINames|SRexx|#?.script)")
                                    (infos)
                                    (help @copyfiles-help)
                                )
                                (if (= @language "english")
                                    (copyfiles
                                        (prompt "Update MUINames Catalogs")
                                        (source "/MUINames/catalogs/english")
                                        (dest (tackon mvdest "MUINames/catalogs"))
                                        (help @copyfiles-help)
                                    )
                                    (copyfiles
                                        (prompt "Update der MUITapes Kataloge")
                                        (source "/MUINames/catalogs")
                                        (dest (tackon mvdest "MUINames/catalogs"))
                                        (pattern "(#?.cd)")
                                        (help @copyfiles-help)
                                    )
                                )
                            )
                        )
                    )
                )

                ; #######################################################
                ; # update documentations: german part
                ; #######################################################

                (if (= @language "deutsch")
                    (
                        (copyfiles
                            (prompt #copyinfos)
                            (source "/Docs")
                            (dest (tackon mvdest "Dokumentationen"))
                            (pattern "(LIES_MICH#?|Registrierung|WICHTIG#?)")
                            (nogauge)
                            (infos)
                            (help @copyfiles-help)
                        )
                        (p_getversions "/Docs/MUIVideo_ger.guide" (tackon mvdest "Dokumentationen/MUIVideo.guide"))
                        (if (= 1 (askbool (prompt ("\nUpdate von MUIVideo.guide\n") (if (= 0 oldversion) ((verinfo3)) ((verinfo1 oldver oldrev))) (verinfo2 aktver aktrev)) (help #versions-help)))
                            (
                                (copyfiles
                                    (prompt #copyguides)
                                    (source "/Docs/MUIVideo_ger.guide")
                                    (dest (tackon mvdest "Dokumentationen"))
                                    (newname "MUIVideo.guide")
                                    (infos)
                                    (help @copyfiles-help)
                                 )
                             )
                         )
                        (p_getversions "/Docs/MUITapes_ger.guide" (tackon mvdest "Dokumentationen/MUITapes.guide"))
                        (if (= 1 (askbool (prompt ("\nUpdate von MUITapes.guide\n") (if (= 0 oldversion) ((verinfo3)) ((verinfo1 oldver oldrev))) (verinfo2 aktver aktrev)) (help #versions-help)))
                            (
                                (copyfiles
                                    (prompt #copyguides)
                                    (source "/Docs/MUITapes_ger.guide")
                                    (dest (tackon mvdest "Dokumentationen"))
                                    (newname "MUITapes.guide")
                                    (infos)
                                    (help @copyfiles-help)
                                )
                            )
                        )
                        (p_getversions "/Docs/MUINames_ger.guide" (tackon mvdest "Dokumentationen/MUINames.guide"))
                        (if (= 1
                                (askbool
                                    (prompt ("\nUpdate von MUINames.guide\n") (if (= 0 oldversion) ((verinfo3)) ((verinfo1 oldver oldrev))) (verinfo2 aktver aktrev))
                                    (help #versions-help)
                                )
                            )
                            (
                                (copyfiles
                                    (prompt #copyguides)
                                    (source "/Docs/MUINames_ger.guide")
                                    (dest (tackon mvdest "Dokumentationen"))
                                    (newname "MUINames.guide")
                                    (infos)
                                    (help @copyfiles-help)
                                )
                            )
                        )
                    )

                    ; #######################################################
                    ; # update documentations: english part
                    ; #######################################################

                    (
                        (copyfiles
                            (prompt #copyinfos)
                            (source "/Docs")
                            (dest (tackon mvdest "Documentations"))
                            (pattern "(READ_ME#?|Registration|ATTENTION#?)")
                            (nogauge)
                            (infos)
                            (help @copyfiles-help)
                        )
                        (p_getversions "/Docs/MUIVideo_eng.guide" (tackon mvdest "Documentations/MUIVideo.guide"))
                        (if (= 1 (askbool (prompt ("\nUpdate of MUIVideo.guide\n") (if (= 0 oldversion) ((verinfo3)) ((verinfo1 oldver oldrev))) (verinfo2 aktver aktrev)) (help #versions-help)))
                            (
                                (copyfiles
                                    (prompt #copyguides)
                                    (source "/Docs/MUIVideo_eng.guide")
                                    (dest (tackon mvdest "Documentations"))
                                    (newname "MUIVideo.guide")
                                    (infos)
                                    (help @copyfiles-help)
                                )
                            )
                        )
                        (p_getversions "/Docs/MUITapes_eng.guide" (tackon mvdest "Documentations/MUITapes.guide"))
                        (if (= 1 (askbool (prompt ("\nUpdate of MUITapes.guide\n") (if (= 0 oldversion) ((verinfo3)) ((verinfo1 oldver oldrev))) (verinfo2 aktver aktrev)) (help #versions-help)))
                            (
                                (copyfiles
                                    (prompt #copyguides)
                                    (source "/Docs/MUITapes_eng.guide")
                                    (dest (tackon mvdest "Documentations"))
                                    (newname "MUITapes.guide")
                                    (infos)
                                    (help @copyfiles-help)
                                )
                            )
                        )
                        (p_getversions "/Docs/MUINames_eng.guide" (tackon mvdest "Documentations/MUINames.guide"))
                        (if (= 1 (askbool (prompt ("\nUpdate of MUINames.guide\n") (if (= 0 oldversion) ((verinfo3)) ((verinfo1 oldver oldrev))) (verinfo2 aktver aktrev)) (help #versions-help)))
                            (
                                (copyfiles
                                    (prompt #copyguides)
                                    (source "/Docs/MUINames_eng.guide")
                                    (dest (tackon mvdest "Documentations"))
                                    (newname "MUINames.guide")
                                    (infos)
                                    (help @copyfiles-help)
                                )
                            )
                        )
                    )
                )
            )
            (
                (message #error1)
                (exit)
            )
        )
    ) ; update end

    ; #######################################################
    ; # new installation procedure
    ; #######################################################

    (
        (while (exists (tackon mvpath "MUIVideo_old"))
            (p_deloldbackup (tackon mvpath "MUIVideo_old"))
        )
        (if (exists mvdest)
            (
                (message #oldmv)
                (set oldmv (cat mvdest "_old"))
                (rename mvdest oldmv)
                (rename (cat mvdest ".info") (cat oldmv ".info"))
            )
        )
        (if (= @user-level 2)
            (message #createdirs)
        )
        ; (makedir mvdest (infos) (prompt #createdir))
        (makedir (tackon mvdest "ARexx"))
        (makedir (tackon mvdest "Buttons"))
        (makedir (tackon mvdest "Data"))
        (makedir (tackon mvdest "Prefs"))
        (makedir (tackon mvdest "Catalogs"))
        (makedir (tackon mvdest "SRexx"))
        (makedir (tackon mvdest "Data/Beispiele"))
        (if (= @language "deutsch")
            (
                (makedir (tackon mvdest "catalogs"))
                (makedir (tackon mvdest "Dokumentationen"))
                (copyfiles
                    (prompt #copylocal)
                    (source "/Catalogs")
                    (dest (tackon mvdest "catalogs"))
                    (pattern "(MUIVideo.cd|MUIVideo_help.cd|MUIVideo_messages.cd)")
                    (help @copyfiles-help)
                )
                (copyfiles
                    (prompt #copyinfos)
                    (source "/Docs")
                    (dest (tackon mvdest "Dokumentationen"))
                    (pattern "(LIES_MICH#?|Registrierung|WICHTIG#?)")
                    (nogauge)
                    (infos)
                    (help @copyfiles-help)
                )
                (copyfiles
                    (prompt #copyguides)
                    (source "/Docs/MUIVideo_ger.guide")
                    (dest (tackon mvdest "Dokumentationen"))
                    (newname "MUIVideo.guide")
                    (infos)
                    (confirm "expert")
                    (help @copyfiles-help)
                )
                (copyfiles
                    (prompt #copyprefs)
                    (source "/Prefs")
                    (dest (tackon mvdest "Prefs"))
                    (pattern "(#?Prefs)")
                    (confirm "expert")
                    (help @copyfiles-help)
                )
            )
            (
                (makedir (tackon mvdest "catalogs/englisch"))
                (makedir (tackon mvdest "Documentations"))
                (copyfiles
                    (prompt #copylocal)
                    (source "/Catalogs/english")
                    (dest (tackon mvdest "catalogs/english"))
                    (pattern "(MUIVideo#?.catalog)")
                    (help @copyfiles-help)
                )
                (copyfiles
                    (prompt #copyinfos)
                    (source "/Docs")
                    (dest (tackon mvdest "Documentations"))
                    (pattern "(READ_ME#?|Registration|ATTENTION#?)")
                    (help @copyfiles-help)
                )
                (copyfiles
                    (prompt #copyguides)
                    (source "/Docs/MUIVideo_eng.guide")
                    (dest (tackon mvdest "Documentations"))
                    (newname "MUIVideo.guide")
                    (infos)
                    (confirm "expert")
                    (help @copyfiles-help)
                )
                (copyfiles
                    (prompt #copyprefs)
                    (source "/Prefs/english")
                    (dest (tackon mvdest "Prefs"))
                    (pattern "(prefs)")
                    (confirm "expert")
                    (help @copyfiles-help)
                )
            )
        )
        (if (= @user-level 2)
            (
                (copyfiles
                    (prompt #askforlanguages)
                    (source "/catalogs")
                    (dest (tackon mvdest "catalogs"))
                    (pattern "~(#?.cd)")
                    (confirm)
                    (help copyfiles-help)
                )
            )
        )
        (copyfiles
            (prompt #copyarexx)
            (source "/ARexx")
            (dest (tackon mvdest "ARexx"))
            (all)
            (infos)
            (confirm "expert")
            (help @copyfiles-help)
        )
        (copyfiles
            (prompt #copybuttons)
            (source "/Buttons")
            (dest (tackon mvdest "Buttons"))
            (all)
            (confirm "expert")
            (help @copyfiles-help)
        )
        (copyfiles
            (prompt #copysrexx)
            (source "/SRexx")
            (dest (tackon mvdest "SRexx"))
            (all)
            ; (infos)
            (help @copyfiles-help)
        )
        (copyfiles
            (prompt #copymain)
            (source "/MUIVideo")
            (dest mvdest)
            (infos)
            (help @copyfiles-help)
        )
        (copyfiles
            (prompt #copymain)
            (source "/Data/Beispiele")
            (dest (tackon mvdest "Data/Beispiele"))
            (all)
            (confirm "2")
            (help @copyfiles-help)
        )

        ; #######################################################
        ; #  install MUINames
        ; #######################################################

        (set vote
            (askbool
                (prompt #askformuinames)
                (choices #true #false)
                (help @guidehelp)
            )
        )
        (if (= 1 vote)
            (
                (if (= @language "deutsch")
                    (
                        (makedir (tackon mvdest "MUINames/catalogs"))
                        (copyfiles
                            (prompt "Kopiere MUINames.guide")
                            (source "/Docs/MUINames_ger.guide")
                            (dest (tackon mvdest "Dokumentationen"))
                            (newname "MUINames.guide")
                            (infos)
                            (help @copyfiles-help)
                        )
                        (copyfiles
                            (prompt "Kopiere Katalog-Dateien von MUINames")
                            (source "/MUINames/catalogs")
                            (dest (tackon mvdest "MUINames/catalogs"))
                            (pattern "(#?.cd)")
                            (help @copyfiles-help)
                        )
                    )
                    (
                        (makedir (tackon mvdest "MUINames/catalogs/english"))
                        (copyfiles
                            (prompt "Copy MUINames.guide")
                            (source "/Docs/MUINames_eng.guide")
                            (dest (tackon mvdest "Documentations"))
                            (newname "MUINames.guide")
                            (infos)
                            (help @copyfiles-help)
                        )
                        (copyfiles
                            (prompt "Copy Catalog-Files of MUINames")
                            (source "/MUINames/catalogs/english")
                            (dest (tackon mvdest "MUINames/catalogs/english"))
                            (all)
                            (help @copyfiles-help)
                        )
                    )
                )
                (copyfiles
                    (prompt #copymuinames)
                    (source "/MUINames")
                    (dest (tackon mvdest "MUINames"))
                    (pattern "(MUINames|#?script)")
                    (infos)
                    (help copyfiles-help)
                )
                (copyfiles
                    (prompt #copyarexx)
                    (source "/MUINames/ARexx")
                    (dest (tackon mvdest "MUINames/ARexx"))
                    (all)
                    (help copyfiles-help)
                )
                (copyfiles
                    (prompt #copysrexx)
                    (source "/MUINames/SRexx")
                    (dest (tackon mvdest "MUINames/SRexx"))
                    (all)
                    (help copyfiles-help)
                )
                (copyfiles
                    (prompt #copydata)
                    (source "/MUINames/Data")
                    (dest (tackon mvdest "MUINames/Data"))
                    (all)
                    (help copyfiles-help)
                )
                (copyfiles
                    (prompt #copydata)
                    (source "/MUINames/Prefs")
                    (dest (tackon mvdest "MUINames/Prefs"))
                    (all)
                    (help copyfiles-help)
                )
            )
        )

        ; #######################################################
        ; # install MUITapes
        ; #######################################################

        (set vote
            (askbool
                (prompt #askformuitapes)
                (choices #true #false)
                (help @guidehelp)
            )
        )
        (if (= 1 vote)
            (
                (makedir (tackon mvdest "MUITapes"))
                (if (= @language "deutsch")
                    (
                        (copyfiles
                            (prompt "Kopiere MUITapes.guide")
                            (source "/Docs/MUITapes_ger.guide")
                            (dest (tackon mvdest "Dokumentationen"))
                            (newname "MUITapes.guide")
                            (infos)
                            (help @copyfiles-help)
                        )
                    )
                    (
                        (copyfiles
                            (prompt "Copy MUITapes.guide")
                            (source "/Docs/MUITapes_eng.guide")
                            (dest (tackon mvdest "Documentations"))
                            (newname "MUITapes.guide")
                            (infos)
                            (help @copyfiles-help)
                        )
                    )
                )
                (copyfiles
                    (prompt #copymuitapes)
                    (source "/MUITapes")
                    (dest (tackon mvdest "MUITapes"))
                    (pattern "(MUITapes|#?script)")
                    (infos)
                    (help copyfiles-help)
                )
                (copyfiles
                    (prompt #copyarexx)
                    (source "/MUITapes/ARexx")
                    (dest (tackon mvdest "MUITapes/ARexx"))
                    (all)
                    (help copyfiles-help)
                )
                (copyfiles
                    (prompt #copysrexx)
                    (source "/MUITapes/SRexx")
                    (dest (tackon mvdest "MUITapes/SRexx"))
                    (all)
                    (help copyfiles-help)
                )
                (copyfiles
                    (prompt #copyprefs)
                    (source "/MUITapes/Prefs")
                    (dest (tackon mvdest "MUITapes/Prefs"))
                    (all)
                    (help copyfiles-help)
                )
            )
        )

        ; #######################################################
        ; # save old data and maybe users nerves
        ; #######################################################

        (if (exists (cat mvpath "MUIVideo_old"))
            (
                (set vote
                    (askbool
                        (prompt #askforolddata)
                        (choices #true #false)
                        (help @guidehelp)
                    )
                )
                (if (= 1 vote)
                    (
                        (copyfiles
                            (prompt #copyoldmainprefs)
                            (source (tackon oldmv "Prefs"))
                            (dest (tackon mvdest "Prefs"))
                            (all)
                            (confirm "expert")
                            (help @copyfiles-help)
                        )
                        (copyfiles
                            (prompt #copyoldmainrexx)
                            (source (tackon oldmv "ARexx"))
                            (dest (tackon mvdest "ARexx"))
                            (all)
                            (confirm "expert")
                            (help @copyfiles-help)
                        )
                        (copyfiles
                            (prompt #copyoldmaindata)
                            (source (tackon oldmv "Data"))
                            (dest (tackon mvdest "Data"))
                            (all)
                            (confirm "expert")
                            (help @copyfiles-help)
                        )
                        (if (exists (tackon oldmv "MUITapes"))
                            (
                                (copyfiles
                                    (prompt #copyoldmuitapesprefs)
                                    (source (tackon oldmv "MUITapes/Prefs"))
                                    (dest (tackon mvdest "MUITapes/Prefs"))
                                    (all)
                                    (confirm "expert")
                                    (help @copyfiles-help)
                                )
                                (copyfiles
                                    (prompt #copyoldmuitapesrexx)
                                    (source (tackon oldmv "MUITapes/ARexx"))
                                    (dest (tackon mvdest "MUITapes/ARexx"))
                                    (all)
                                    (confirm "expert")
                                    (help @copyfiles-help)
                                )
                            )
                        )
                        (if (exists (tackon oldmv "MUINames"))
                            (
                                (copyfiles
                                    (prompt #copyoldmuinamesprefs)
                                    (source (tackon oldmv "MUINames/Prefs"))
                                    (dest (tackon mvdest "MUINames/Prefs"))
                                    (all)
                                    ; (confirm "expert")
                                    (help @copyfiles-help)
                                )
                                (copyfiles
                                    (prompt #copyoldmuinamesdata)
                                    (source (tackon oldmv "MUINames/Data"))
                                    (dest (tackon mvdest "MUINames/Data"))
                                    (all)
                                    (confirm "expert")
                                    (help @copyfiles-help)
                                )
                                (copyfiles
                                    (prompt #copyoldmuinamesrexx)
                                    (source (tackon oldmv "MUINames/ARexx"))
                                    (dest (tackon mvdest "MUINames/ARexx"))
                                    (all)
                                    (confirm "expert")
                                    (help @copyfiles-help)
                                )
                            )
                        )
                        (if (exists (tackon oldmv "MUIVideo.key"))
                            (
                                (copyfiles
                                    (prompt #copykeyfile)
                                    (source (tackon oldmv "MUIVideo.key"))
                                    (dest mvdest)
                                    (confirm "expert")
                                    (help @copyfiles-help)
                                )
                            )
                        )
                    )
                )
            )
        )
    )
)

(message #endmessage) ; and now quit the lisp-like-shit
(exit)
