home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games 1996 January / amigagames-cdrom-1996-01.iso / archive / userbox / publicdomain / filer3_24.lha / Filer / Rexx / TTar.filer < prev    next >
Text File  |  1995-08-14  |  4KB  |  165 lines

  1. /*
  2.     $VER: TTar.filer 1.3 (14.8.95)
  3.  
  4.     Author:
  5.         Michael Böhnisch <billy@uni-paderborn.de>    (mb)
  6.                 Matthias Scheler <tron@lyssa.owl.de>            (ms)
  7.  
  8.     Function:
  9.         Basic Tar/SCSI Tape interface for Filer.  Combined with BTN
  10.         Tape   handler,  "tape.filer"  and  tar  (included  in  BTN
  11.         distrib.)  it's  very  easy  to  make Filer act as a simple
  12.         backup program.
  13.  
  14.     Requires:
  15.         BTN Handler installed (from Fish Disk #558)
  16.         tar (from BTN distribution)
  17.         Streamer device
  18.  
  19.     Call:
  20.         TTar READ    Tape tar archive --> selected directory
  21.         TTar WRITE    Selected files/dirs --> Tape tar archive
  22.         TTar LIST    List tape tar archive
  23.         TTar DIFF    Compare tape tar archive <--> selected dir
  24.  
  25.     Example for Filer.RC:
  26.         XBUTTON 2,0,0,5,">>> Tape","TTar WRITE"
  27.         XBUTTON 2,1,0,5,"Tape >>>","TTar READ"
  28.         XBUTTON 2,2,0,7,"List","TTar LIST"
  29.         XBUTTON 2,3,0,1,"Verify","TTar DIFF"
  30.  
  31.         (see also "tape.filer")
  32.  
  33.     History:
  34.         23.09.93    1.0 Initial Release (mb)
  35.         26.11.93    1.1 Review for Filer 3.10 Gamma 2 (mb)
  36.                 19.06.95        1.2 removed some flaws (ms)
  37.                 14.08.95        1.3 added "QUIET" to "DELETE" call (ms)
  38.  
  39. */
  40.  
  41. PARSE ARG Cmd
  42. OPTIONS RESULTS                /* aquire results        */
  43. PANEL OFF                /* switch command buttons off    */
  44.  
  45. TEMPFILENAME
  46. tmpfile    = RESULT
  47.  
  48. ALERTBOX "Please insert medium into tape drive!"
  49.  
  50. SELECT
  51.  
  52.   /* ------------------------------------------------------------------ */
  53.   /* Read Tar archive from Tape to selected directory            */
  54.   /* ------------------------------------------------------------------ */
  55.  
  56.     WHEN Cmd = 'READ' THEN DO
  57.       GETSOURCEPATH
  58.       IF RESULT = 'RESULT' THEN
  59.        DO
  60.         PANEL ON
  61.         EXIT 5
  62.        END
  63.       dir = RESULT
  64.       PRAGMA('D', dir)
  65.  
  66.       GETNUMENTRIES
  67.       IF RESULT = 'RESULT' THEN
  68.        DO
  69.         PANEL ON
  70.         EXIT 5
  71.        END
  72.       Anzahl = RESULT
  73.  
  74.       "EXEC Tar xvR"
  75.  
  76.       UPDATESOURCEDIR
  77.  
  78.       HISTORY "TTar: Tar Archiv extracted to" dir
  79.     END
  80.  
  81.     /* ---------------------------------------------------------------- */
  82.     /* Write selected files/archives from source directory to Tape tar    */
  83.     /* archive                                */
  84.     /* ---------------------------------------------------------------- */
  85.  
  86.     WHEN Cmd = 'WRITE' THEN DO
  87.       GETSOURCEPATH
  88.       IF RESULT = 'RESULT' THEN
  89.        DO
  90.         PANEL ON
  91.         EXIT 5
  92.        END
  93.       dir = RESULT
  94.       PRAGMA('D', dir)
  95.  
  96.       GETNUMENTRIES
  97.       IF RESULT = 'RESULT' THEN
  98.        DO
  99.         PANEL ON
  100.         EXIT 5
  101.        END
  102.       Anzahl = RESULT
  103.  
  104.       OPEN('TMP', tmpfile, 'WRITE')
  105.  
  106.       DO i = 1 TO Anzahl
  107.         GETNAME i
  108.         IF RESULT = 'RESULT' THEN
  109.          DO
  110.           PANEL ON
  111.           EXIT 5
  112.          END
  113.         Eintrag = RESULT
  114.  
  115.         Type = LEFT(Eintrag, 1)        /* parse filetype (f, d, F, D)    */
  116.         Name = SUBSTR(Eintrag, 2)    /* parse filename        */
  117.  
  118.         IF Type = 'd' | Type = 'f' THEN DO
  119.           WRITELN('TMP', Name)
  120.           TOGGLEENTRY i
  121.           HISTORY "TTar: adding" Name "to TAPE tar archive"
  122.         END
  123.       END
  124.  
  125.       CLOSE('TMP')
  126.  
  127.       "EXEC Tar cvRT" tmpfile
  128.       "EXEC Delete" tmpfile "QUIET"
  129.     END
  130.  
  131.     /* ---------------------------------------------------------------- */
  132.     /* List files in tar Tape archive                    */
  133.     /* ---------------------------------------------------------------- */
  134.  
  135.     WHEN Cmd = 'LIST' THEN DO
  136.       "EXEC Tar tvR"
  137.     END
  138.  
  139.     /* ---------------------------------------------------------------- */
  140.     /* Compare tar archive to filesystem data                */
  141.     /* ---------------------------------------------------------------- */
  142.  
  143.     WHEN Cmd = 'DIFF' THEN DO
  144.       GETSOURCEPATH
  145.       IF RESULT = 'RESULT' THEN
  146.        DO
  147.         PANEL ON
  148.         EXIT 5
  149.        END
  150.       dir = RESULT
  151.       PRAGMA('D', dir)
  152.       "EXEC Tar dvR"
  153.       END
  154.  
  155.     /* ---------------------------------------------------------------- */
  156.     /* Just in case someone calls this from Shell/CLI            */
  157.     /* ---------------------------------------------------------------- */
  158.  
  159.     OTHERWISE DO
  160.       SAY "Use from Filer® only!"
  161.     END
  162. END
  163.  
  164. PANEL ON
  165.