home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1997-11-21 | 37.7 KB | 1,410 lines
; ************************************************ ; * ; * $VER: Install-Backup (06 Oct 1996 20:42:22) ; * ; * Installations-Script für Backup und Restore ; * ; * Copyright @ Jürgen Lachmann 1993-1996 ; * ; ************************************************ ; **************************** ; * Set up some global variables. ; **************************** ; (set #ProductName "Backup") ; product name (set #BackupName "Backup") (set #RestoreName "Restore") (set #BackupVersionNum "3.20") ; Backup version number (set #RestoreVersionNum "3.20") ; Restore version number (set #OSVersion (/ (getversion) 65536)) (set #WBVersion (/ (getversion "c:LoadWB") 65536)) (set #TotalFiles 0) (set #AccumFiles 0) (set #PctDone 0) ; (set #Disk1Name "Backup&Restore:") ; actual name of disk 1 (set #Disk1Name "") ; actual name of disk 1 (set #DiskInstall #Disk1Name) ; installation (main) disk (set #DiskLHA #Disk1Name) ; Lhx program disk (set #DiskBackup #Disk1Name) ; Backup program disk (set #DiskRestore #Disk1Name) ; Restore program disk (set #DiskSamples #Disk1Name) ; Samples default files (set #DiskSource #Disk1Name) ; Source default files ; die FileCount-Werte sind nur Anhaltswerte für die Fortschritts-Anzeige (set #BackupFileCount 2) ; Backup + Icon (set #RestoreFileCount 2) ; Restore + Icon (set #BackupHelpFileCount 24) ; Backup/Guide/#? (set #RestoreHelpFileCount 18) ; Restore/Guide/#? (set #SampleFileCount 22) ; BackupScripts/#? (set #BackupSourceFileCount 77) (set #RestoreSourceFileCount 62) (set #LHAName (TACKON #DiskLHA "lhx -I")) (set #BackupBinLHA (TACKON #DiskBackup (cat "Backup_Bin_V" #BackupVersionNum ".lha"))) (set #BackupSrcLHA (TACKON #DiskBackup (cat "Backup_Src_V" #BackupVersionNum ".lha"))) (set #RestoreBinLHA (TACKON #DiskRestore (cat "Restore_Bin_V" #RestoreVersionNum ".lha"))) (set #RestoreSrcLHA (TACKON #DiskRestore (cat "Restore_Src_V" #RestoreVersionNum ".lha"))) (set #BackupExecFiles "Backup Backup.info") (set #RestoreExecFiles "Restore Restore.info") (set #BackupHelpFiles "Guide/#?") (set #RestoreHelpFiles "Guide/#?") (set #BackupSampleFiles "#?TAP#? BackupScripts/#?" ) (set #BackupSourceFiles "#?") (set #RestoreSourceFiles "#?") (set #DefaultDestination "SYS:Backup") (set #BackupDir (TACKON #DefaultDestination " ")) (set #RestoreDir (TACKON #DefaultDestination " ")) (set #BackupHelpDir (TACKON #DefaultDestination "Guide")) (set #RestoreHelpDir (TACKON #DefaultDestination "Guide")) (set #BackupScriptDir (TACKON #DefaultDestination "BackupScripts")) (set #BackupSourceDir (TACKON #DefaultDestination "BackupSource")) (set #RestoreSourceDir (TACKON #DefaultDestination "RestoreSource")) (set #BackupCatalogDir (TACKON #DefaultDestination "BackupCatalogs")) (set #BackupGuide (cat #BackupName ".guide")) (set #RestoreGuide (cat #RestoreName ".guide")) (set #BackupDiskSave "T:Backup_DiskSave") (set #TapeDriveDataBase "S:Backup.TapeDriveData") (set #BackupAppIconName (TACKON #DefaultDestination "Backup_AppIcon")) ; bei einem Installer >= 42.x wird hiermit Proportionalschrift bei "askoptions" eingeschaltet (if (>= @installer-version 42) (set #AskPrefix "\x1b[2p") (set #AskPrefix "") ) (procedure P_setPkgOpts ; ; **************************** ; * Ask the user which parts of the package should be installed. ; **************************** ; ( (set #setPkgHelp (cat ("Dieser Teil der Installationsprozedur ermöglicht Ihnen die Auswahl der Teile des %s Pakets," #ProductName "die Sie jetzt installieren möchten.\n" #ProductName) "\n\n" ("*** %s\n" #BackupName) ("Diese Option ermöglicht Ihnen die Installation des Datensicherungsprogrammes %s." #BackupName) "\n\n" ("*** %s\n" #RestoreName) ("Diese Option ermöglicht Ihnen die Installation des Programmes zur ") ("Datenrücksicherung %s." #RestoreName) "\n\n" ("*** Hilfe-Dateien\n") ("Diese Option ermöglicht Ihnen die Installation der Hilfedateien für %s und %s." #ProductName #RestoreName) "\n\n" ("*** Beispiel-BackupScripts\n") ("Diese Option ermöglicht Ihnen die Installation von Beispielen für Backup-SkriptDateien.") "\n\n" ("*** Backup-Quellcode\n") ("Diese Option ermöglicht Ihnen die Installation des C-Quellcodes für Backup.") "\n\n" ("*** Restore-Quellcode\n") ("Diese Option ermöglicht Ihnen die Installation des C-Quellcodes für Restore.") "\n" @askoptions-help ) ) (select (exists #BackupSrcLHA (noreq)) (set #PkgOptBackupSrcChoice "") (set #PkgOptBackupSrcChoice "Quellcode zu Backup") ) (select (exists #RestoreSrcLHA (noreq)) (set #PkgOptRestoreSrcChoice "") (set #PkgOptRestoreSrcChoice "Quellcode zu Restore") ) (set #PkgOpts (askoptions (prompt ("Bitte wählen Sie die Teile des %s Pakets, die Sie jetzt installieren möchten" #ProductName) ) (help #setPkgHelp) (choices ; bit position 0 -- todo & 1 ; ("%s%s V%s" #AskPrefix #BackupName #BackupVersionNum) ; bit position 1 -- todo & 2 ; ("%s V%s" #RestoreName #RestoreVersionNum) ; bit position 2 -- todo & 4 ; "Hilfe-Dateien" ; bit position 3 -- todo & 8 "Beispiel-BackupScripts" ; bit position 4 -- todo & 16 ("%s" #PkgOptBackupSrcChoice) ; bit position 5 -- todo & 32 ("%s" #PkgOptRestoreSrcChoice) ) (default ; Backup + Restore + Helpfiles + Samples ; keine Quellcodes (+ 1 2 4 8) ) ) ) ) ) (procedure P_setDirPath ; ; **************************** ; * Ask the user for a directory name. ; **************************** ; ; these variables must be defined before calling this procedure: ; #setDirPathWhy ; #setDirPathHelp ; #DirPath ; ; this procedure returns the selected directory in #DirPath ; ( (set #DirPath (askdir (prompt ("Bitte wählen Sie das Verzeichnis, %s" #setDirPathWhy) ) (help #setDirPathHelp "\n" @askdir-help ) (newpath) (default #DirPath) ) ) ) ) (procedure P_setFilePath ; ; **************************** ; * Ask the user for a File name. ; **************************** ; ; these variables must be defined before calling this procedure: ; #setFilePathWhy ; #setFilePathHelp ; #FilePath ; ; this procedure returns the selected File in #FilePath ; ( (if (not (askbool (prompt (cat "Hier sehen Sie die Datei, " #setFilePathWhy "\n\n" ('"%s"' #FilePath) "\n\nMöchten Sie Namen oder Pfad dieser Datei jetzt " "ändern oder unverändert übernehmen?" ) ) (help #setFilePathHelp) (default 0) (choices "Übernehmen" "Ändern") )) ( (set #FilePath (askfile (prompt ("Bitte wählen Sie, %s" #setFilePathWhy) ) (help #setFilePathHelp "\n" @askfile-help ) 'newpath' (default #FilePath) ) ) ) ) ) ) (procedure P_deleteIfExists ; ; **************************** ; * Delete the given file, if it exists. ; **************************** ; ; these variables must be defined before calling this procedure: ; ; #deleteDir #deleteFileName #deleteWorkingText ; (if (exists #deleteDir) ( (working #deleteWorkingText) (if (NOT @pretend) ( (foreach #deleteDir #deleteFileName ( (transcript "Deleted " @each-name) (protect @each-name "+wd") (delete @each-name) ) ) ) ) ) ) ) (procedure P_renameIfExists ; ; **************************** ; * Rename the given file, if it exists. ; **************************** ; ; these variables must be defined before calling this procedure: ; ; #origFileName ; #renameFileName ; ( (if (= (exists #origFileName) 1) ( (protect #origFileName "+rwed") (rename #origFileName #deleteFileName) (transcript "Renamed file " #origFileName " to " #deleteFileName) ) ) ) ) (procedure P_BuildLHADir ; ; **************************** ; * Append "/" to #LHADir ; **************************** ; ; #LHADir ; ( (set #LHADir (TACKON #LHADir "X")) (set #LHADirLen (strlen #LHADir)) (set #LHADir (substr #LHADir 0 (- #LHADirLen 1))) ) ) (procedure P_AppendAmigaGuidePath ; ; **************************** ; * der Pfad #AGHelpDir wird an ENV:AmigaGuide/Path angehängt ; **************************** ; ; #AGHelpDir #AGProgram ; ( (if (= (exists "ENV:" (noreq)) 2) ( (if (<> (exists "ENV:AmigaGuide") 2) (makedir "ENV:AmigaGuide" (confirm) (prompt "Verzeichnis ENV:AmigaGuide für die Voreinstellungen von AmigaGuide® wird angelegt." ) (help "In diesem Verzeichnis liegen verschiedene Voreinstellungen für das " "Hilfe-System AmigaGuide®." ) ) ) (if (= (exists "ENV:AmigaGuide") 2) ( (working ("Hilfe-Verzeichnis %s in ENV:AmigaGuide/Path aufnehmen..." #AGHelpDir) ) ; Help Directory in ENV:AmigaGuide/Path aufnehmen (run (prompt ("Jetzt wird das Verzeichnis %s mit den Hilfe-Dateien " #AGHelpDir) ("für %s in ENV:AmigaGuide/Path eingetragen." #AGProgram) ) (help ("Damit AmigaGuide® die Hilfe-Dateien für %s " #AGProgram) ("findet, muß das Verzeichnis %s " #AGHelpDir) "in ENV:AmigaGuide/Path eingetragen werden." ) (confirm) (cat (TackOn #DiskInstall "AddAGPath") " " #AGHelpDir) ) (copyfiles (prompt "Jetzt wird die ergänzte Version von ENV:AmigaGuide/Path " "nach ENVARC:AmigaGuide/Path kopiert" ) (help "Damit die ergänzte Fassung von ENV:AmigaGuide/Path auch nach dem " "Ausschalten Ihres Amiga erhalten bleibt, wird sie jetzt " "in das Verzeichnis ENVARC:AmigaGuide/Path kopiert.") (confirm) (source "ENV:AmigaGuide/Path") (dest "ENVARC:AmigaGuide") (infos) ) ) ) ) ) ) ) (procedure P_incrementMeter ; ; **************************** ; * Increment the progress meter indicator. ; **************************** ; ; #addToMeter ; ( (set #PctDone (/ (* #AccumFiles 100) #TotalFiles)) (set #AccumFiles (+ #AccumFiles #addToMeter)) (complete #PctDone) ) ) ; **************************** ; * gemeinsames Verzeichnis für ; * die Sicherungsprotokolle anlegen ; **************************** ; (procedure P_CreateCatalogDir ( (if (<> (exists #BackupCatalogDir) 2) ( (makedir #BackupCatalogDir (infos) (confirm) (prompt ("Verzeichnis '%s' für die Sicherungs-Protokolle " #BackupCatalogDir) ("des Programms %s wird angelegt" #BackupName) ) (help "In diesem Verzeichnis werden Protokolle " "aller Sicherungsläufe abgelegt (soweit eingeschaltet).\n" ("Dieses Verzeichnis wird sowohl von %s als " #BackupName) ("von %s benutzt." #RestoreName) ) ) ) ) ) ) ; **************************** ; * Backup Installation routine ; **************************** ; (procedure P_BackupInstall ( ; **************************** ; * Install the Program ; **************************** ; (set #addToMeter #BackupFileCount) (P_incrementMeter) ; alte vorhandene Backup-Files löschen (set #deleteWorkingText ("Alte Teile von %s werden entfernt..." #BackupName)) (set #deleteDir #BackupDir) (set #deleteFileName #BackupExecFiles) (P_deleteIfExists) (set #LHADir #BackupDir) (P_BuildLHADir) (working ("%s wird ausgepackt..." #BackupName) ) (if (<> (exists #BackupDir) 2) ( (makedir #BackupDir (infos) (confirm) (prompt ("Verzeichnis '%s' für das Programm %s wird angelegt" #BackupDir #BackupName) ) (help ("In diesem Verzeichnis wird das Programm %s abgelegt." #BackupName)) ) ) ) (P_CreateCatalogDir) ; (debug ("%s e \"%s\" %s \"%s\"" #LHAName #BackupBinLHA #BackupExecFiles #LHADir)) (run (prompt ("Jetzt werden die Programmdateien für %s ausgepackt und im Verzeichnis %s installiert." #BackupName #BackupDir) ) (help ("Die Programmdateien für %s müssen aus dem Archiv %s mit Lha" #BackupName #BackupBinLHA) (" ausgepackt werden und werden dann im Verzeichnis %s abgelegt." #BackupDir) ) (confirm) ("%s e \"%s\" %s \"%s\"" #LHAName #BackupBinLHA #BackupExecFiles #LHADir) ) (transcript ("Unpacked from %s: %s to %s" #BackupBinLHA #BackupExecFiles #BackupDir)) ; Tool Types für Backup einstellen (tooltype (prompt ("Es werden folgende Einstellungen in das %s Piktogramm (Icon) übernommen:\n" #BackupName) ("\nPROTFILENAME=%s" (cat "\"" (tackon #BackupCatalogDir "Backup.%d.%t.Directory") "\"") ) ("\nSCRIPTPATH=%s" (cat "\"" #BackupScriptDir "\"")) ("\nHELPPATH=%s" #BackupHelpDir) ("\nAPPICONNAME=%s" #BackupAppIconName) ("\nDISKSAVE=%s" #BackupDiskSave) ("\nTAPEDRIVEDATABASE=%s" #TapeDriveDataBase) ) (help "Hier finden Sie nochmal alle Änderungen in den Piktogramm-Einstellungen " ("(Tool Types) für %s, die jetzt vorgenommen werden sollen." #BackupName) ) (dest (tackon #BackupDir #BackupName)) (noposition) (confirm) (settooltype "PROTFILENAME" (cat "\"" (tackon #BackupCatalogDir "Backup.%d.%t.Directory") "\"") ) (settooltype "SCRIPTPATH" (cat "\"" #BackupScriptDir "\"")) (settooltype "HELPPATH" #BackupHelpDir) (settooltype "APPICONNAME" #BackupAppIconName) (settooltype "DISKSAVE" #BackupDiskSave) (settooltype "TAPEDRIVEDATABASE" #TapeDriveDataBase) ) ) ) ; **************************** ; * Restore Installation routine ; **************************** ; (procedure P_RestoreInstall ( (set #addToMeter #RestoreFileCount) (P_incrementMeter) ; alte vorhandene Restore-Files löschen (set #deleteWorkingText ("Alte Teile von %s werden entfernt..." #RestoreName)) (set #deleteDir #RestoreDir) (set #deleteFileName #RestoreExecFiles) (P_deleteIfExists) (set #LHADir #RestoreDir) (P_BuildLHADir) (working ("%s wird ausgepackt..." #RestoreName) ) (if (<> (exists #RestoreDir) 2) ( (makedir #RestoreDir (infos) (confirm) (prompt ("Verzeichnis '%s' für das Programm %s wird angelegt" #RestoreDir #RestoreName) ) (help ("In diesem Verzeichnis wird das Programm %s abgelegt." #RestoreName)) ) ) ) (P_CreateCatalogDir) ; (debug ("%s e \"%s\" %s \"%s\"" #LHAName #RestoreBinLHA #RestoreExecFiles #LHADir)) (run (prompt ("Jetzt werden die Programmdateien für %s ausgepackt und im Verzeichnis %s installiert." #RestoreName #RestoreDir) ) (help ("Die Programmdateien für %s müssen aus dem Archiv %s mit Lha " #RestoreName #RestoreBinLHA) ("ausgepackt werden und werden dann im Verzeichnis %s abgelegt." #RestoreDir) ) (confirm) ("%s e \"%s\" %s \"%s\"" #LHAName #RestoreBinLHA #RestoreExecFiles #LHADir) ) (transcript ("Unpacked from %s: %s to %s" #RestoreBinLHA #RestoreExecFiles #RestoreDir)) ; Tool Types für Restore einstellen (tooltype (prompt ("Es werden folgende Einstellungen in das %s Piktogramm (Icon) übernommen:\n" #RestoreName) ("\nCATALOGDIR=%s" (cat "\"" #BackupCatalogDir "\"")) ("\nHELPPATH=%s" #RestoreHelpDir) ("\nTAPEDRIVEDATABASE=%s" #TapeDriveDataBase) ) (help "Hier finden Sie nochmal alle Änderungen in den Piktogramm-Einstellungen " ("(Tool Types) für %s, die jetzt vorgenommen werden sollen." #RestoreName) ) (dest (tackon #RestoreDir #RestoreName)) (noposition) (confirm) (settooltype "CATALOGDIR" (cat "\"" #BackupCatalogDir "\"")) (settooltype "HELPPATH" #RestoreHelpDir) (settooltype "TAPEDRIVEDATABASE" #TapeDriveDataBase) ) ) ) ; **************************** ; * Help Files Installation routine ; **************************** ; (procedure P_HelpFilesInstall ( (if (IN #PkgOpts 0) ( (set #addToMeter #BackupHelpFileCount) (P_incrementMeter) ; alte vorhandene Backup-Hilfedateien löschen (set #deleteWorkingText ("Alte Hilfe-Dateien für %s werden entfernt..." #BackupName)) (set #deleteDir #BackupHelpDir) (set #deleteFileName #BackupHelpFiles) (P_deleteIfExists) (set #LHADir #BackupHelpDir) (P_BuildLHADir) (working ("Hilfe-Dateien für %s werden ausgepackt..." #BackupName) ) (if (<> (exists #BackupHelpDir) 2) ( (makedir #BackupHelpDir (infos) (confirm) (prompt ("Verzeichnis '%s' für die Hilfe-Dateien zum Programm %s wird angelegt" #BackupHelpDir #BackupName) ) (help "In diesem Verzeichnis werden die verschiedenen Hilfe-Dateien für " ("das Programm %s abgelegt." #BackupName) ) ) ) ) (run (prompt ("Jetzt werden die Hilfe-Dateien für %s ausgepackt und im Verzeichnis %s installiert." #BackupName #BackupHelpDir) ) (help ("Die Hilfe-Dateien für %s müssen aus dem Archiv %s mit Lha " #BackupName #BackupBinLHA) ("ausgepackt werden und werden dann im Verzeichnis %s abgelegt." #BackupHelpDir) ) (confirm) ("%s e -x2 \"%s\" %s \"%s\"" #LHAName #BackupBinLHA #BackupHelpFiles #LHADir) ) (transcript ("Unpacked from %s: %s to %s" #BackupBinLHA #BackupHelpFiles #BackupHelpDir)) ; Hilfe-Pfad in ENV_AmigaGuide eintragen (set #AGHelpDir #BackupHelpDir) (set #AGProgram #BackupName) (P_AppendAmigaGuidePath) ) ) (if (IN #PkgOpts 1) ( (set #addToMeter #RestoreHelpFileCount) (P_incrementMeter) ; alte vorhandene Restore-Hilfefiles löschen (set #deleteWorkingText ("Alte Hilfe-Dateien für %s werden entfernt..." #RestoreName)) (set #deleteDir #RestoreHelpDir) (set #deleteFileName #RestoreHelpFiles) (P_deleteIfExists) (set #LHADir #RestoreHelpDir) (P_BuildLHADir) (working ("%s %s werden ausgepackt..." "Hilfe-Dateien für" #RestoreName) ) (if (<> (exists #RestoreHelpDir) 2) ( (makedir #RestoreHelpDir (infos) (confirm) (prompt ("Verzeichnis '%s' für die Hilfe-Dateien zum Programm %s wird angelegt" #RestoreHelpDir #RestoreName) ) (help "In diesem Verzeichnis werden die verschiedenen Hilfe-Dateien für " ("das Programm %s abgelegt." #RestoreName) ) ) ) ) (run (prompt ("Jetzt werden die Hilfe-Dateien für %s ausgepackt und im Verzeichnis %s installiert." #RestoreName #RestoreHelpDir) ) (help ("Die Hilfe-Dateien für %s müssen aus dem Archiv %s mit Lha " #RestoreName #RestoreBinLHA) ("ausgepackt werden und werden dann im Verzeichnis %s abgelegt." #RestoreHelpDir) ) (confirm) ("%s e -x2 \"%s\" %s \"%s\"" #LHAName #RestoreBinLHA #RestoreHelpFiles #LHADir) ) (transcript ("Unpacked from %s: %s to %s" #RestoreBinLHA #RestoreHelpFiles #RestoreHelpDir)) ; Hilfe-Pfad in ENV_AmigaGuide eintragen (set #AGHelpDir #RestoreHelpDir) (set #AGProgram #RestoreName) (P_AppendAmigaGuidePath) ) ) ) ) ; **************************** ; * Sample Files Installation routine ; **************************** ; (procedure P_SamplesInstall ( (set #addToMeter #SampleFileCount) (P_incrementMeter) (set #LHADir #BackupScriptDir) (P_BuildLHADir) (working ("%s %s werden installiert..." "Beispiel-Dateien für" #BackupName) ) (if (<> (exists #BackupScriptDir) 2) ( (makedir #BackupScriptDir (infos) (confirm) (prompt ("Verzeichnis '%s' für die Beispiel-Dateien zum Programm %s wird angelegt" #BackupScriptDir #BackupName) ) (help "In diesem Verzeichnis werden die verschiedenen Beispiel-Dateien für " ("das Programm %s abgelegt." #BackupName) ) ) ) ) (run (prompt ("Jetzt werden die Beispiel-Dateien für %s ausgepackt und im Verzeichnis %s installiert." #BackupName #BackupScriptDir) ) (help ("Die Beispiel-Dateien für %s müssen aus dem Archiv %s mit Lha " #BackupName #BackupBinLHA) ("ausgepackt werden und werden dann im Verzeichnis %s abgelegt." #BackupScriptDir) ) (confirm) ("%s -x2 e \"%s\" %s \"%s\"" #LHAName #BackupBinLHA #BackupSampleFiles #LHADir) ) ) ) ; **************************** ; * Source code Installation routine ; **************************** ; (procedure P_SourceInstall ( (if (IN #PkgOpts 0) ( (set #addToMeter #BackupSourceFileCount) (P_incrementMeter) ; alten vorhandene Backup-Quellcode löschen (set #deleteWorkingText ("Alte Quellcodes von %s werden entfernt..." #BackupName)) (set #deleteDir #BackupSourceDir) (set #deleteFileName #BackupSourceFiles) (P_deleteIfExists) (set #LHADir #BackupSourceDir) (P_BuildLHADir) (working ("Quellcode für %s wird installiert..." #BackupName) ) (if (<> (exists #BackupSourceDir) 2) ( (makedir #BackupSourceDir (infos) (confirm) (prompt ("Verzeichnis '%s' für den Quellcode für das Programm %s wird angelegt" #BackupSourceDir #BackupName) ) (help "In diesem Verzeichnis wird der gesamte Quellcode für " ("das Programm %s abgelegt." #BackupName) ) ) ) ) (run (prompt ("Jetzt wird der Quellcode für %s ausgepackt und im Verzeichnis %s installiert." #BackupName #BackupSourceDir) ) (help ("Der Quellcode für %s müssen aus dem Archiv %s mit Lha " #BackupName #BackupSrcLHA) ("ausgepackt werden und werden dann im Verzeichnis %s abgelegt." #BackupSourceDir) ) (confirm) ("%s -x1 e \"%s\" %s \"%s\"" #LHAName #BackupSrcLHA #BackupSourceFiles #LHADir) ) (transcript ("Unpacked from %s: %s to %s" #BackupSrcLHA #BackupSourceFiles #BackupSourceDir) ) ) ) (if (IN #PkgOpts 1) ( (set #addToMeter #RestoreSourceFileCount) (P_incrementMeter) ; alten vorhandene Restore-Quellcode löschen (set #deleteWorkingText ("Alte Quellcodes von %s werden entfernt..." #RestoreName)) (set #deleteDir #RestoreSourceDir) (set #deleteFileName #RestoreSourceFiles) (P_deleteIfExists) (set #LHADir #RestoreSourceDir) (P_BuildLHADir) (working ("Quellcode für %s wird installiert..." #RestoreName) ) (if (<> (exists #RestoreSourceDir) 2) ( (makedir #RestoreSourceDir (infos) (confirm) (prompt ("Verzeichnis '%s' für den Quellcode für das Programm %s wird angelegt" #RestoreSourceDir #RestoreName) ) (help "In diesem Verzeichnis wird der gesamte Quellcode für " ("das Programm %s abgelegt." #RestoreName) ) ) ) ) (run (prompt ("Jetzt wird der Quellcode für %s ausgepackt und im Verzeichnis %s installiert." #RestoreName #RestoreSourceDir) ) (help ("Der Quellcode für %s müssen aus dem Archiv %s mit Lha " #RestoreName #RestoreSrcLHA) ("ausgepackt werden und werden dann im Verzeichnis %s abgelegt." #RestoreSourceDir) ) (confirm) ("%s -x1 e \"%s\" %s \"%s\"" #LHAName #RestoreSrcLHA #RestoreSourceFiles #LHADir) ) (transcript ("Unpacked from %s: %s to %s" #RestoreSrcLHA #RestoreSourceFiles #RestoreSourceDir) ) ) ) ) ) ; **************************** ; * Locale Installation routine ; **************************** ; (procedure P_LocaleInstall ( (set #addToMeter 2) ; 2 set of locale files (P_incrementMeter) (if (= (getassign "LOCALE" "a") "") ( ; no LOCALE: assigned -- we cannot continue ; (message "\nYou do not seem to have LOCALE: assigned to the directory " "where the localization files are stored.\n" "\n" "Please install the system software localization files before " "retrying this installation.\n" "\n\n" "Press either the Proceed or Abort Install button to abort " "this installation.\n") (P_cleanUp) (exit (quiet)) ) ( ; LOCALE: was found ; (if (<> (exists "LOCALE:Catalogs") 2) ( (makedir "LOCALE:Catalogs") (if (<> (exists "LOCALE:Catalogs") 2) ( (message "\nThe directory:\n\nLOCALE:Catalogs\n\n" "could not be created. This installation " "requires this directory be present to " "install the selected locale support files.\n" "\n" "This installation cannot continue.\n") (P_cleanUp) (exit (quiet)) ) ) ) ) (set #LanguageToDo 0) (set #LanguageMax 1) (while (< #LanguageToDo #LanguageMax) ( (set #LanguageDesc (select #LanguageToDo "English" "")) (if (IN #LanguageID #LanguageToDo) ( (if (IN #PkgOpts 0) ( (working ("Sprache %s für %s wird installiert..." #LanguageDesc #BackupName) ) (set #LHADir (TACKON "Catalogs" #LanguageDesc)) (P_BuildLHADir) (run (prompt ("Jetzt werden die Katalog-Dateien für %s in der Sprache %s " #BackupName #LanguageDesc) "ausgepackt und im Verzeichnis " ("LOCALE:Catalogs/%s installiert." #LanguageDesc) ) (help ("Die Katalog-Dateien (%s) für %s müssen aus dem Archiv %s mit Lha ausgepackt werden und" #BackupName #LanguageDesc #BackupBinLHA) (" werden dann im Verzeichnis LOCALE:Catalogs/%s abgelegt." #LanguageDesc) ) (confirm) ("%s -x2 e \"%s\" %s/#?.catalog LOCALE:Catalogs/" #LHAName #BackupBinLHA #LHADir ) ) (transcript ("Unpacked from %s: %s to %s" #BackupBinLHA #LanguageDesc (TACKON "Catalogs" #LanguageDesc)) ) ) ) (if (IN #PkgOpts 1) ( (working ("Sprache %s für %s wird installiert..." #LanguageDesc #RestoreName) ) (set #LHADir (TACKON "Catalogs" #LanguageDesc)) (P_BuildLHADir) (run (prompt ("Jetzt werden die Katalog-Dateien für %s in der Sprache %s " #RestoreName #LanguageDesc) "ausgepackt und im Verzeichnis" (" LOCALE:Catalogs/%s installiert." #LanguageDesc) ) (help ("Die Katalog-Dateien (%s) für %s müssen aus dem Archiv %s mit Lha ausgepackt werden und" #RestoreName #LanguageDesc #RestoreBinLHA) (" werden dann im Verzeichnis LOCALE:Catalogs/%s abgelegt." #LanguageDesc) ) (confirm) ("%s -x2 e \"%s\" %s/#?.catalog LOCALE:Catalogs/" #LHAName #RestoreBinLHA #LHADir ) ) (transcript ("Unpacked from %s: %s to %s" #RestoreBinLHA #LanguageDesc (TACKON "Catalogs" #LanguageDesc)) ) ) ) ) ) (set #LanguageToDo (+ #LanguageToDo 1)) ) ) ) ) ) ) ; **************************** ; * General P_cleanUp routine ; **************************** ; (procedure P_cleanUp ( ; **************************** ; * exit the program. ; **************************** ; (complete 100) ) ) ; ************************************************************************* ; * ACTUAL START OF SCRIPT ; * ; * Ask all questions for the user now, do all of the work later. ; ************************************************************************* ; (onerror (P_cleanUp) (exit (quiet)) ) ; **************************** ; * set the default destination ; **************************** ; (set @default-dest #DefaultDestination) (set #defaultUtilDir @default-dest) ; Versions-Abfrage: Backup & Restore verlangen Kickstart >= 39 (if (< #OSVersion 39) ( (message "\nSie haben leider kein Kickstart/Workbench 3.0 in Betrieb.\n" "Backup und Restore benötigt zum Betrieb mindestens Kickstart V39" "\n") (P_cleanUp) (exit (quiet)) ) ) (P_setPkgOpts) ; **************************** ; * if (#PkgOpts & 0) or (#PkgOpts & 1), ask the user which locale files to install, ; * but don't actually do it yet. ; **************************** ; ;(debug ("WB %ld / OS %ld" #WBVersion #OSVersion)) (if (AND (OR (IN #PkgOpts 0) (IN #PkgOpts 1)) (>= #WBVersion 38)) ( (set #LanguageID 1) ; default language is 0 (Deutsch) (set #TotalFiles (+ #TotalFiles 2)) ; 2 set of locale files (set #LanguageID (askoptions (prompt ("Bitte wählen Sie die bevorzugten Fremdsprachen (außer Deutsch), in denen Sie %s möglicherweise betreiben möchten." #ProductName) ) (help "Zur Zeit besteht die einzige Alternative zu Deutsch in Englisch.\n" "\n\n" "*** English\n" "Dies sollten Sie auswählen, wenn Sie englischsprachige Menu- und Fenster-Texte möchten.\n" "\n" @askchoice-help ) (choices ; bit position 0 -- todo & 1 ; ("%sEnglish" #AskPrefix) ) (default #LanguageID) ) ) ; (debug ("#LanguageID = %ld" #LanguageID)) ) (set #LanguageID 0) ) (set #BackupDir @default-dest) (set continueOn 0) (onerror (P_cleanUp) (exit (quiet)) ) (while (AND (<> continueOn 1) (> @user-level 0)) ( ; **************************** ; * if (#PkgOpts & 0), ask the user where to install Backup ; * but don't actually do it yet. ; **************************** ; (if (IN #PkgOpts 0) ; if bit position 0 is on ( (set #setDirPathWhy (cat ("wo Sie %s V%s installiert haben möchten." #BackupName #BackupVersionNum) "\n" "Dieses Verzeichnis wird bei der Installation angelegt, wenn es noch nicht existiert.") ) (set #setDirPathHelp (cat "Workbench-Benutzer sollten diese Programme in einem " "Verzeichnis installieren, das von der Workbench aus " "erreicht werden kann. CLI/Shell-Benutzer, können sie" " in Ihrem C: Verzeichnis installieren (oder jedem " "anderen Verzeichnis im Suchpfad).\n") ) (set #DirPath #BackupDir) (P_setDirPath) (set #BackupDir #DirPath) (set @default-dest #BackupDir) (set #TotalFiles (+ #TotalFiles #BackupFileCount)) (set #BackupHelpDir (TACKON #BackupDir "Guide")) (set #BackupScriptDir (TACKON #BackupDir "BackupScripts")) (set #BackupSourceDir (TACKON #BackupDir "BackupSource")) (set #BackupCatalogDir (TACKON #BackupDir "BackupCatalogs")) (set #BackupAppIconName (TACKON #BackupDir "Backup_AppIcon")) (if (> @user-level 1) ( ; **************************** ; jetzt noch das Directory für die Protokolle abfragen ; **************************** (set #setDirPathWhy (cat ("wo %s seine Sicherungsprotokolle ablegen soll." #BackupName) "\n" "Dieses Verzeichnis wird bei der Installation angelegt, wenn es noch nicht existiert.") ) (set #setDirPathHelp (cat "Backup kann bei jeder Sicherung ein Protokoll erstellen, " "das von Restore verwendet werden kann. Das Verzeichnis " "für diese Protokolle wird als TOOL TYPE in die " "Piktogramme von Backup und Restore eingetragen\n") ) (set #DirPath #BackupCatalogDir) (P_setDirPath) (set #BackupCatalogDir #DirPath) ) ) ) ) ; **************************** ; * if (#PkgOpts & 1), ask the user where to install Restore, ; * but don't actually do it yet. ; **************************** ; (if (IN #PkgOpts 1) ; if bit position 1 is on ( (set #RestoreDir #BackupDir) (if (> @user-level 1) ( (set #setDirPathWhy (cat ("wo Sie %s V%s installiert haben möchten" #RestoreName #RestoreVersionNum) "\n" "Dieses Verzeichnis wird bei der Installation angelegt, wenn es noch nicht existiert.") ) (set #setDirPathHelp ("Das Programm %s können Sie entweder im selben Verzeichnis wie %s anlegen, oder dort, wo Sie normalerweise Ihre Hilfsprogramme aufbewahren.\n" #RestoreName #BackupName)) (set #DirPath #RestoreDir) (P_setDirPath) (set #RestoreDir #DirPath) (set #defaultUtilDir #DirPath) ) ) (set #TotalFiles (+ #TotalFiles #RestoreFileCount)) (set #RestoreHelpDir (TACKON #RestoreDir "Guide")) (set #RestoreSourceDir (TACKON #RestoreDir "RestoreSource")) ) ) ; **************************** ; * if (#PkgOpts & 2), ask the user where to install the package's Help files ; * from disk 1. ; **************************** ; (if (IN #PkgOpts 2) ; if bit position 2 is on ( (if (> @user-level 1) ( (if (IN #PkgOpts 0) (set #setDirPathWhy (cat "wo Sie die Backup-Hilfedateien installiert haben möchten." "\n" "Dieses Verzeichnis wird bei der Installation angelegt, wenn es noch nicht existiert.") ) (set #setDirPathHelp (cat "In diesem Verzeichnis werden diverse Text- Bild-Dateien der " ("Online-Hilfe für %s abgelegt.\n" #BackupName) ) ) (set #DirPath #BackupDir) (P_setDirPath) (set #BackupHelpDir #DirPath) ) (if (IN #PkgOpts 1) (set #setDirPathWhy "wo Sie die Restore-Hilfedateien installiert haben möchten.") (set #setDirPathHelp (cat "In diesem Verzeichnis werden diverse Text- Bild-Dateien der " ("Online-Hilfe für %s abgelegt.\n" #RestoreName) ) ) (set #DirPath #RestoreDir) (P_setDirPath) (set #RestoreHelpDir #DirPath) ) ) ( (set #BackupHelpDir (TACKON #BackupDir "Guide")) (set #RestoreHelpDir (TACKON #RestoreDir "Guide")) ) ) (if (IN #PkgOpts 0) (set #TotalFiles (+ #TotalFiles #BackupHelpFileCount)) ) (if (IN #PkgOpts 1) (set #TotalFiles (+ #TotalFiles #RestoreHelpFileCount)) ) ) ) ; **************************** ; * if (#PkgOpts & 3), ask the user where to install the package's Sample Script files ; * from disk 1. ; **************************** ; (if (IN #PkgOpts 3) ; if bit position 3 is on ( (if (> @user-level 1) ( (set #setDirPathWhy (cat "wo Sie die Beispiel-Scripts für Backup installiert haben möchten." "\n" "Dieses Verzeichnis wird bei der Installation angelegt, wenn es noch nicht existiert.") ) (set #setDirPathHelp (cat "In diesem Verzeichnis werden einige Beispiel-Skript-Dateien " ("für %s abgelegt.\n" #BackupName) ) ) (set #DirPath (TACKON #BackupDir "BackupScripts") ) (P_setDirPath) (set #BackupScriptDir #DirPath) ) ( (set #BackupScriptDir (TACKON #BackupDir "BackupScripts") ) ) ) (set #TotalFiles (+ #TotalFiles #SampleFileCount)) ) ) ; **************************** ; * if (#PkgOpts & 4), ask the user where to install the Backup Source code ; * from disk 1. ; **************************** ; (if (IN #PkgOpts 4) ; if bit position 4 is on ( (if (> @user-level 1) ( (set #setDirPathWhy (cat "wo Sie den Backup-Quellcode installiert haben möchten." "\n" "Dieses Verzeichnis wird bei der Installation angelegt, wenn es noch nicht existiert.") ) (set #setDirPathHelp (cat "In diesem Verzeichnis werden sämtliche Quellcode-" ("Dateien für %s abgelegt.\n" #BackupName) ) ) (set #DirPath (TACKON #BackupDir "BackupSource") ) (P_setDirPath) (set #BackupSourceDir #DirPath) ) ( (set #BackupSourceDir (TACKON #BackupDir "BackupSource") ) ) ) (set #TotalFiles (+ #TotalFiles #BackupSourceFileCount)) ) ) ; **************************** ; * if (#PkgOpts & 5), ask the user where to install the Restore Source code ; * from disk 1. ; **************************** ; (if (IN #PkgOpts 5) ; if bit position 5 is on ( (if (> @user-level 1) ( (set #setDirPathWhy (cat "wo Sie den Restore-Quellcode installiert haben möchten." "\n" "Dieses Verzeichnis wird bei der Installation angelegt, wenn es noch nicht existiert.") ) (set #setDirPathHelp (cat "In diesem Verzeichnis werden sämtliche Quellcode-" ("Dateien für %s abgelegt.\n" #RestoreName) ) ) (set #DirPath (TACKON #RestoreDir "RestoreSource") ) (P_setDirPath) (set #RestoreSourceDir #DirPath) ) ( (set #RestoreSourceDir (TACKON #RestoreDir "RestoreSource") ) ) ) (set #TotalFiles (+ #TotalFiles #RestoreSourceFileCount)) ) ) ; **************************** ; * ask the user where to place the Tape Drive Data Base ; **************************** ; (if (or (IN #PkgOpts 0) (IN #PkgOpts 1)) ; if bit position 0 or 1 is on ( (if (> @user-level 1) ( (set #setFilePathWhy "wo Backup die Bandlaufwerks-Datenbank ablegen soll.") (set #setFilePathHelp (cat "Backup und Restore benutzen eine Datenbank, um sich die " "Eigenschaften von Bandlaufwerken zu merken.\n" "Hier legen Sie fest, wo diese Datenbank angelegt wird.\n") ) (set #FilePath #TapeDriveDataBase) (P_setFilePath) (set #TapeDriveDataBase #FilePath) ) ) ) ) ; **************************** ; * ask the user where to place the DiskSave File ; **************************** ; (if (IN #PkgOpts 0) ; if bit position 0 is on ( (if (> @user-level 1) ( (set #setFilePathWhy "wo Backup seine Reservedatei für Diskettensicherungen anlegen soll.") (set #setFilePathHelp (cat "Die Reservedatei ermöglicht, bei einem Lese- oder Schreibfehler " "die aktuelle Diskette zu verwerfen und durch eine andere zu " "ersetzen, wobei die neue Diskette wieder von Spur 1 an " "bespielt wird.\n") ) (set #FilePath #BackupDiskSave) (P_setFilePath) (set #BackupDiskSave #FilePath) ) ) ) ) ; letzte Nachfrage... (if (= 1 (askbool (prompt (cat ("%s wird in folgenden Verzeichnissen installiert:\n" #BackupName) (if (IN #PkgOpts 0) ("\nBackup in «%s»\nBackup-Protokolle : %s" #BackupDir #BackupCatalogDir)) (if (IN #PkgOpts 1) ("\nRestore in «%s»" #RestoreDir)) (if (AND (IN #PkgOpts 2) (IN #PkgOpts 0)) ("\nBackup Hilfedateien in «%s»" #BackupHelpDir)) (if (AND (IN #PkgOpts 2) (IN #PkgOpts 1)) ("\nRestore Hilfedateien in «%s»" #RestoreHelpDir)) (if (IN #PkgOpts 3) ("\nBeispiel-Scripts in «%s»" #BackupScriptDir)) (if (IN #PkgOpts 4) ("\nBackup Quellcode in «%s»" #BackupSourceDir)) (if (IN #PkgOpts 5) ("\nRestore Quellcode : %s" #RestoreSourceDir)) (if (OR (IN #PkgOpts 1) (IN #PkgOpts 0)) ("\nBandlaufwerks-Datenbank in «%s»" #TapeDriveDataBase)) (if (OR (IN #PkgOpts 1) (IN #PkgOpts 0)) ("\nDisketten-Reservedatei in «%s»" #BackupDiskSave)) (if (OR (IN #PkgOpts 1) (IN #PkgOpts 0)) ("\nBackup-AppIcon in «%s»" #BackupAppIconName)) "\n\nIst das richtig?" ) ) (help ("Diese Anzeige zeigt Ihnen noch einmal, in welchem Verzeichnis der Installer %s installieren wird. " #BackupName) (cat "Dies dient zu Ihrer Sicherheit, damit Sie genau " "wissen, wo die Dateien hinkopiert werden.\n" "\n" "Um andere Verzeichnise zu wählen, drücken Sie " "den NEIN-Knopf. Ansonsten drücken Sie den " "JA-Knopf, um die Installation fortzusetzen.\n" ) ) ) (set continueOn 1) ) ) ) ) (complete 0) (message "\nWollen Sie Backup jetzt installieren?" (help "Sobald Sie den WEITER-Knopf gedrückt haben, werden die " "ausgewählten Programmteile installiert. Jetzt haben sie" " die letzte Möglichkeit " "diesen Vorgang abzubrechen, ohne Teile der ausgewählten" " Programmteile zu installieren.\n" "\n" "Nach dem Drücken von WEITER können Sie die Esc-Taste " "drücken, um die Installation abzubrechen.\n") ) (onerror (P_cleanUp) (exit (quiet)) ) ;(askdisk ; (dest (substr #DiskInstall 0 (- (strlen #DiskInstall) 1))) ; (prompt ("Bitte die\nBackup-Installationsdiskette\n\n%s\n\nin ein Laufwerk einlegen" #DiskInstall)) ; (help "Die Originaldiskette mit den Backup- und Restore-Archiven " ; "wird unbedingt gebraucht, um die Installation durchführen zu können." ; "\nSollten Sie die Archive bereits auf Ihre Festplatte kopiert haben," ; (" können Sie den Namen '%s' mit Assign zuweisen." #DiskInstall) ; ) ; (assigns) ;) (if (IN #PkgOpts 0) (P_BackupInstall) ) (if (IN #PkgOpts 1) (P_RestoreInstall) ) (if (IN #PkgOpts 2) (P_HelpFilesInstall) ) (if (IN #PkgOpts 3) (P_SamplesInstall) ) (if (IN #PkgOpts 4) (P_SourceInstall) ) (if (AND (AND (OR (IN #PkgOpts 0) (IN #PkgOpts 2)) (>= #WBVersion 38)) (<> #LanguageID 0)) (P_LocaleInstall) ) (P_cleanUp) (exit)