;********************************************************************************
;    ______        __                  ______                     __  __   __
;   / __  /       / /                 / __  /                    / /  \ \ / /
;  / /  -'__  __ / /___ ______ _____ / /_ -'_____ ______ ______ / /__  \ \ /
; / /     \ \/ // __  // ____// .__// // \ / .__// __  // __  // __  / /  /
;/ /___    \  // /_/ // __/_ / /   / /_/ // /   / __  // /_/ // / / / / \ \
;\____/    / //_____//_____//_/   /_____//_/   /_/ /_// ____//_/ /_/ /_/ \_\ V4
;         /_/                                        / /
;                                                   /_/
; $VER: 4.0 (October-21-1998)
; CyberBackUp-UnInstall-V4 1995,1996,1997,1998 by Robert C. Reiswig 
;
; If you wish to use any part of this installer you must ask. May not be 
; integrated/placed into any other package. Changes, suggestions or problems:
; cyberver@vgr.com 
;--------------------------------------------------------------------------------
;
;********************************************************************************
(if (= @user-level 0) (set @user-level 2))

;********************************************************************************
; Read All System information
;********************************************************************************
(set lan 1)
(if (> (exists ("env:Language")) 0)
  (if (= "deutsch" (getenv "Language")) (set lan 0) )
)

;********************************************************************************
;English Information
;********************************************************************************
(set #whattodo "\nWhat would you like to do?\n")
(set #backupcyber " BackUp CyberGraphX V4")
(set #removecyber " UnInstall CyberGraphX V4")
(set #whatpartsb "\nWhat parts of CyberGraphX V4 would you like to BackUp?\n")
(set #libs " Libraries")
(set #monitor " Monitor File")
(set #env " ENV: Vars")
(set #envarc " ENVARC: Vars")
(set #config " Monitor Config File(s)")
(set #whereback "Where would you like to BackUp the selected CyberGraphX V4 Parts?  If a directory Called 'CyberGraphX' is not there one will be created.")
(set #libsbacked1 "\n\nThe CyberGraphX V4 Libraries have been backed-up to:\n\n")
(set #libsbacked2 "\n\n\n\nThe libraries have been renamed to:\n\n<filename>+<version.revision>") 
(set #gettingcheck "\n\nGetting Checksum for:\n\n")
(set #monbacked1 "\n\nThe CyberGraphX V4 Monitor File(s) have been backed-up to:\n\n")
(set #monbacked2 "\n\n\n\nThe Monitor File(s) have been renamed to:\n\n<filename>+<checksum>") 
(set #backenv "\n\nBacking-Up CyberGraphX V4 ENV: File(s)")
(set #envbacked1 "\n\nThe CyberGraphX V4 ENV: File(s) have been backed-up to:\n\n")
(set #monbacked1 "\n\nThe CyberGraphX V4 Monitor Config Files File(s) have been backed-up to:\n\n")
(set #backenvarc "\n\nBacking-Up CyberGraphX V4 ENVARC: File(s)")
(set #envarcbacked1 "\n\nThe CyberGraphX V4 ENVARC: File(s) have been backed-up to:\n\n")
(set #notthere "\n\nCurrently UnInstall is not implemented!")
(set #whatpartun "\nWhat parts of CyberGraphX V4 would you like to UNINSTALL/DELETE?\n")
;--
(set #deletefile "\n\nDeleteing file:\n\n")
(set #deletedir "\n\nDeleteing directory:\n\n")
(set #deletemon (cat "\n\nThe installer will now DELETE the following files from 'Devs:Monitors' if there are there\n\n"
                     "CVision3D\n\n"
                     "and there .info files."
                )
)
(set #deletelibs (cat "\n\nThe installer will now DELETE the following files from 'Libs:' if there are there\n\n"
                      "cgxsystem.library\ncgxvideo.library\nvilintuisup.library"
                 )
)
(set #deleteenv "\n\nThe installer will now DELETE 'env:CyberGraphX/#?'")
(set #deleteenvarc "\n\nThe installer will now DELETE 'envarc:CyberGraphX/#?'")
(set #deletemonitorc "\n\nThe installer will now DELETE 'sys:Prefs/presets/Monitors/#?'")
(set #removenow "Delete Now")
(set #skip "Skip")


;********************************************************************************
;German Information
;********************************************************************************
(if (= LAN 0)
(
(set #whattodo "\nWas mchten Sie tun ?\n")
(set #backupcyber " Sichere CyberGraphX V4")
(set #removecyber " Entferne CyberGraphX V4")
(set #whatpartsb "\nWelche Teile von CyberGraphX V4 mchten Sie sichern?\n")
(set #libs " Libraries")
(set #monitor " Monitor Datei(en)")
(set #env " ENV: Variablen")
(set #envarc " ENVARC: Variablen")
(set #whereback "Wohin wollen Sie die gewhlten CyberGraphX V4 Teile sichern?  Wenn ein Verzeichnis 'CyberGraphX' nicht vorhanden ist, wird es erstellt.")
(set #libsbacked1 "\n\nDie CyberGraphX V4 Libraries wurden gesichert nach:\n\n")
(set #libsbacked2 "\n\n\n\nDie Libraries wurden umbenannt in:\n\n<filename>+<version.revision>") 
(set #gettingcheck "\n\nErzeuge Prfsumme fr:\n\n")
(set #monbacked1 "\n\nDie CyberGraphX V4 Monitor Datei(en) wurden gesichert nach:\n\n")
(set #monbacked2 "\n\n\n\nDie Monitor Datei(en) wurden umbenannt in:\n\n<filename>+<checksum>") 
(set #backenv "\n\nSichere CyberGraphX V4 ENV: Datei(en)")
(set #envbacked1 "\n\nDie CyberGraphX V4 ENV: Datei(en) wurden gesichert nach:\n\n")
(set #backenvarc "\n\nSichere CyberGraphX V4 ENVARC: Datei(en)")
(set #envarcbacked1 "\n\nDie CyberGraphX V4 ENVARC: Datei(en) wurden gesichert nach:\n\n")
(set #notthere "\n\nDie Option Deinstallieren ist nicht implementiert!")
;--
(set #deletefile "\n\nLsche Datei:\n\n")
(set #deletedir "\n\nLsche Verzeichnis:\n\n")
(set #deletemon (cat "\n\nDas Installationsprogramm lscht nun folgende Dateien aus 'Devs:Monitors'\n\n"
                     "Spectrum, Piccolo, Domino, RetinaZ3, PiccoSD64, A2410, Picasso, CyberVision, DraCoAltais\n\n"
                     "und die .info Dateien."
                )
)
(set #deletelibs (cat "\n\nDas Installationsprogramm wird nun folgende Dateien aus 'Libs:' lschen, falls vorhanden\n\n"
                      "cybergraphics.library\ncyberintuition.library\ncyberlayers.library\ncyberncg.library\nvilintuisup.library"
                 )
)
(set #deleteenv "\n\nDas Installationsprogramm lscht nun 'env:CyberGraphX/#?'")
(set #deleteenvarc "\n\nDas Installationsprogramm lscht nun 'envarc:CyberGraphX/#?'")
(set #removenow "Jetzt lschen")
(set #skip "berspringen")


)
)


;********************************************************************************
; What to do?
;********************************************************************************
(set ja (askoptions   (choices #backupcyber #removecyber)
      	   	      (prompt #whattodo)
                      (help   #whattodo)
       	              (default 1)
	)
)

;********************************************************************************
; BackUp
;********************************************************************************
(if (IN ja 0)
(

(set todo (askoptions   (choices #libs #monitor #env #envarc #config)
      	                (prompt #whatpartsb)
                        (help   #whatpartsb)
       	                (default 31)
	)
)

(if (<> todo 0)
 (
   (set whereback (askdir (prompt #whereback)
	                  (help   #whereback)
                          (default "SYS:Storage")
	          )
   )

   (set wherelibs "libs:")
   (set wheremon  "devs:monitors")   
   
   (if (IN todo 0)
      (
         (set libsdest (tackon whereback "CyberGraphX"))
         (if (< (exists libsdest) 2)  (makedir libsdest (infos)) )
         (set libsdest (tackon whereback "CyberGraphX/libs"))
         (if (< (exists libsdest) 2)  (makedir libsdest (infos)) )

         (procedure BackUpLib
          (if (> (exists (tackon wherelibs #lib)) 0)
           (
             (set vernum1 (getversion (tackon wherelibs #lib)) )
             (set ver1 (/ vernum1 65536)) (set rev1 (- vernum1 (* ver1 65536) ) )

             (copyfiles (source (tackon wherelibs #lib))
                                (dest libsdest)
                                (newname (cat #lib ver1 "." rev1))
             )
           )
          )
         ) 

         (set #lib "cgxsystem.library")   (BackUpLib)
         (set #lib "cgxvideo.library")    (BackUpLib)
         (set #lib "vilintuisup.library") (BackUpLib)
         (set #lib "gtlayout.library")    (BackUpLib)

         (message (cat #libsbacked1 libsdest #libsbacked2))
      )
    )


   (if (IN todo 1)
      (
         (set mondest (tackon whereback "CyberGraphX"))
         (if (< (exists mondest) 2)  (makedir mondest (infos)) )
         (set mondest (tackon whereback "CyberGraphX/Devs"))
         (if (< (exists mondest) 2)  (makedir mondest (infos)) )
         (set mondest (tackon whereback "CyberGraphX/Devs/Monitors"))
         (if (< (exists mondest) 2)  (makedir mondest (infos)) )
           
         (procedure BackUpMon
          (if (> (exists (tackon wheremon #mon)) 0)
            (
             (working (cat #gettingcheck (tackon wheremon #mon) )) 
             (set sum (getsum (tackon wheremon #mon)) )
             (if (< sum 0) (set sum (* sum -1)) )

              (copyfiles (source (tackon wheremon #mon))
                                 (dest mondest)
                                 (newname (cat #mon "." sum))
                                 (infos)
              )
            )
          )
         ) 

         (set #mon "CVisionPPC")(BackUpMon)
         (set #mon "CVision3D") (BackUpMon)
         (set #mon "CVision64") (BackUpMon)
         (set #mon "PicassoII") (BackUpMon)
         (set #mon "Spectrum")  (BackUpMon)
         (set #mon "Piccolo")   (BackUpMon)
         (set #mon "PiccoSD64") (BackUpMon)
         (set #mon "Inferno")   (BackUpMon)
         (set #mon "PicassoIV") (BackUpMon)
         (set #mon "RetinaZ3")  (BackUpMon)
         (set #mon "A2410")     (BackUpMon)
              
         (message (cat #monbacked1 mondest #monbacked2))
      )
    )


   (if (IN todo 2)
      (
         (set envdest (tackon whereback "CyberGraphX"))
         (if (< (exists envdest) 2)  (makedir envdest (infos)) )
         (set envdest (tackon whereback "CyberGraphX/Env"))
         (if (< (exists envdest) 2)  (makedir envdest (infos)) )
         (set envdest (tackon whereback "CyberGraphX/Env/CyberGraphX"))
         (if (< (exists envdest) 2)  (makedir envdest (infos)) )
                 
         (working #backenv) 
         (set copycmd (cat "copy env:CyberGraphX to \"" envdest "\" all"))  
         (run copycmd)
              
         (message (cat #envbacked1 envdest))
      )
   )

   (if (IN todo 3)
      (
         (set envarcdest (tackon whereback "CyberGraphX"))
         (if (< (exists envarcdest) 2)  (makedir envarcdest (infos)) )
         (set envarcdest (tackon whereback "CyberGraphX/EnvArc"))
         (if (< (exists envarcdest) 2)  (makedir envarcdest (infos)) )
         (set envarcdest (tackon whereback "CyberGraphX/EnvArc/CyberGraphX"))
         (if (< (exists envarcdest) 2)  (makedir envarcdest (infos)) )
                 
         (working #backenvarc) 
         (set copycmd (cat "copy envarc:CyberGraphX to \"" envarcdest "\" all"))  
         (run copycmd)
              
         (message (cat #envarcbacked1 envarcdest))
      )
   )    

   (if (IN todo 4)
      (
         (set monitordest (tackon whereback "CyberGraphX"))
         (if (< (exists monitordest) 2)  (makedir monitordest (infos)) )
         (set monitordest (tackon whereback "CyberGraphX/Prefs"))
         (if (< (exists monitordest) 2)  (makedir monitordest (infos)) )
         (set monitordest (tackon whereback "CyberGraphX/Prefs/Presets"))
         (if (< (exists monitordest) 2)  (makedir monitordest (infos)) )
         (set monitordest (tackon whereback "CyberGraphX/Prefs/Presets/Monitors"))
         (if (< (exists monitordest) 2)  (makedir monitordest (infos)) )
                 
         (working #backenvarc) 
         (set copycmd (cat "copy sys:prefs/presets/monitors/#? to \"" monitordest "\" all"))  
         (run copycmd)
              
         (message (cat #monbacked1 monitordest))
      )
   )    


 )
)


)
)

;********************************************************************************
; UnInstall
;********************************************************************************
(set dfn "")
(procedure dfd   (delete (tackon "devs:monitors" dfn) (infos))  )
(procedure dfl   (delete (tackon "libs:" dfn) (infos))  )


(if (IN ja 1)
(

(set todo1 (askoptions   (choices #libs #monitor #env #envarc #config)
      	                (prompt #whatpartun)
                        (help   #whatpartun)
       	                (default 0)
	)
)

(if (IN todo1 0)
  (
   (set kill (askbool (prompt #deletelibs)
	 	      (help   #deletelibs)
                      (choices #removenow #Skip)
	     )
   )

   (if (= kill 1)
    (
     (set dfl "cgxsystem.library")   (dfl)  (set dfl "cgxvideo.library") (dfl)
     (set dfl "vilintuisup.library") (dfl) 

    )
   ) 
  )
)


(if (IN todo1 1)
  (
   (set kill (askbool (prompt #deletemon)
	 	      (help   #deletemon)
                      (choices #removenow #Skip)
	     )
   )

   (if (= kill 1)
    (
     (set dfn "CVision3D") (dfd) 
    )
   ) 
  )
)


(if (IN todo1 2)
  (
   (set kill (askbool (prompt #deleteenv)
	 	      (help   #deleteenv)
                      (choices #removenow #Skip)
	     )
   )

   (if (= kill 1)
    (
     (foreach "env:CyberGraphX" "#?" 
      (set curdir @each-name) 
      (foreach (tackon "env:CyberGraphX" curdir) "#?"
         ;(working (cat "\n\n" #deletefile "\n\n" (tackon (tackon "env:CyberGraphX" curdir) @each-name)))
         (delete (tackon (tackon "env:CyberGraphX" curdir) @each-name)) 
      )
      ;(working (cat "\n\n" #deletedir "\n\n" (tackon "env:CyberGraphX" curdir)))
      (delete (tackon "env:CyberGraphX" curdir))
     )       
     (delete "env:CyberGraphX")
    )
   ) 
  )
)


(if (IN todo1 3)
  (
   (set kill (askbool (prompt #deleteenvarc)
	 	      (help   #deleteenvarc)
                      (choices #removenow #Skip)
	     )
   )

   (if (= kill 1)
    (
     (foreach "envarc:CyberGraphX" "#?" 
      (set curdir @each-name) 
      (foreach (tackon "envarc:CyberGraphX" curdir) "#?"
         ;(working (cat "\n\n" #deletefile "\n\n" (tackon (tackon "envarc:CyberGraphX" curdir) @each-name)))
         (delete (tackon (tackon "envarc:CyberGraphX" curdir) @each-name)) 
      )
      ;(working (cat "\n\n" #deletedir "\n\n" (tackon "envarc:CyberGraphX" curdir)))
      (delete (tackon "envarc:CyberGraphX" curdir))
     )       
     (delete "envarc:CyberGraphX")
    )
   ) 
  )
)


(if (IN todo1 4)
  (
   (set kill (askbool (prompt #deletemonitorc)
	 	      (help   #deletemonitorc)
                      (choices #removenow #Skip)
	     )
   )

   (if (= kill 1)
    (
     (foreach "sys:prefs/presets/monitors" "Monitor#?" 
      (delete (tackon "sys:prefs/presets/monitors" @each-name)) 
     )
    )       
     ;(delete "sys:prefs/presets/monitors")
   )
  ) 
)



)
)
;********************************************************************************
; END
;********************************************************************************
(set @default-dest (cat whereback "CyberGraphX"))
(exit "CyberBackUp-UnInstallV4")
