home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 28 / amigaformatcd28.iso / -seriously_amiga- / archivers / xfx / zfx < prev   
AmigaDOS Script File  |  1998-04-27  |  3KB  |  145 lines

  1. .key COMMAND/A,DEVICE/A,TO/K,FILE,MODE/K,DISKBUF/K,PACKEFF/K,START/K,END/K,VERIFY/S,NOEJECT/S,VERBOSE/S,QUIET/S
  2. .bra {
  3. .ket }
  4.  
  5. ; $VER zFX 1.0 (20.4.1998)
  6. ; xFX and GZip interface
  7. ;
  8. ; © 1998, Alessandro Pedretti
  9. ;
  10. ;
  11. ; Options:
  12. ; ~~~~~~~~
  13. ; COMMAND   = COPY, READ, WRITE, CHECK, INFO
  14. ; DEVICE    = Device name (AmigaDOS or DEVICE.device:UNIT)
  15. ; TO        = Destination device for copy
  16. ; FILE      = Input/output file for READ/WRITE commands
  17. ; MODE      = Device mode (Std, SCSI, IEC)
  18. ; PACKEFF   = GZip packing efficiency (1...9)
  19. ; DISKBUF   = Disk buffer path for COPY
  20. ; START     = Start cylinder (default 0)
  21. ; END       = End cylinder (default last)
  22. ; VERIFY    = Verifies cylinders during write operations
  23. ; NOEJECT   = Inhibits auto disk eject
  24. ; VERBOSE   = Explains all operations
  25. ; QUIET     = Suppresses all messages
  26.  
  27.  
  28. ; PIPE: is mounted ?
  29.  
  30. Assign PIPE: DEVICES EXISTS >NIL:
  31. If WARN
  32.   Mount PIPE: >NIL:
  33.   If WARN
  34.     Echo "Can't mount PIPE:"
  35.     Quit 20
  36.   EndIf
  37. EndIf
  38.  
  39. ; GZip is installed ?
  40.  
  41. Which GZip >NIL:
  42. If WARN
  43.   Echo "GZip not found" 
  44.   Quit 20
  45. EndIf
  46.  
  47. ; Options:
  48.  
  49. Set Err ""
  50. Set OPT ""
  51. Set PackErr "Illegal efficiency"
  52.  
  53. If {COMMAND} EQ "READ"
  54.   If {PACKEFF}
  55.     If {PACKEFF} NOT GT 0 VAL
  56.       Set Err $PackErr
  57.     Else
  58.       If {PACKEFF} GT 9 VAL
  59.         Set Err $PackErr 
  60.       EndIf
  61.     EndIf
  62.   EndIf
  63. EndIf
  64.  
  65. If "$Err" EQ ""
  66.   If {MODE}
  67.     Set OPT "MODE {MODE}"
  68.   EndIf
  69.  
  70.   If {START}
  71.     Set OPT "$OPT START {START}"
  72.   EndIf
  73.  
  74.   If {END}
  75.     Set OPT "$OPT END {END}"
  76.   EndIf
  77.  
  78.   If {DISKBUF}
  79.     Set OPT "$OPT DISKBUF {DISKBUF}"
  80.   EndIf
  81.  
  82. ; Action:
  83.  
  84.   If {COMMAND} EQ "READ"
  85.     Run >NIL: GZip -cf{PACKEFF} <PIPE:xFX_Data.xfx/10240/1 >"{FILE}"
  86.     FailAt 21
  87.     xFX READ {DEVICE} PIPE:xFX_Data.xfx $OPT {NOEJECT} {VERBOSE} {QUIET}
  88.  
  89. ; xFX fails ?
  90.  
  91.     If FAIL
  92.       Break `Status COMMAND GZip`
  93.       Delete "{FILE}" >NIL:
  94.     Else
  95.  
  96. ; Waiting GZip:
  97.  
  98.       Lab Loop
  99.       Status COMMAND GZip >NIL:
  100.       If NOT WARN
  101.         Wait 1
  102.         Skip Loop BACK
  103.       EndIf
  104.  
  105.       Echo "Packed size: " NOLINE
  106.       List "{FILE}" LFORMAT "%l bytes"
  107.     EndIf
  108.  
  109.   Else
  110.  
  111.     If {COMMAND} EQ "WRITE"
  112.       If NOT EXISTS {FILE}
  113.         Echo "File not found"
  114.       Else
  115.         Run >NIL: GZip -cdf {FILE} >PIPE:xFX_Data.xfx/10240/1
  116.         FailAt 21
  117.         xFX WRITE {DEVICE} PIPE:xFX_Data.xfx FORCEWRT $OPT {VERIFY} {NOEJECT} {VERBOSE} {QUIET}
  118.  
  119. ; xFX fails ?
  120.  
  121.         If FAIL
  122.           Break `Status COMMAND GZip`
  123.           Type PIPE:xFX_Data.xfx TO NIL:
  124.         EndIf
  125.       EndIf
  126.     Else
  127.       If {COMMAND} EQ "COPY"
  128.         If {TO}
  129.           xFX COPY {DEVICE} TO {TO} $OPT {NOEJECT} {VERBOSE} {QUIET}
  130.         Else
  131.           xFX COPY {DEVICE} $OPT {NOEJECT} {VERBOSE} {QUIET}
  132.         EndIf
  133.       Else
  134.         xFX {COMMAND} {DEVICE} $OPT {NOEJECT} {VERBOSE} {QUIET}
  135.       EndIf
  136.     EndIf
  137.   EndIf
  138. Else
  139.   Echo "ERROR: $Err"
  140. EndIf  
  141.  
  142. UnSet Err
  143. UnSet OPT
  144. UnSet PackErr
  145.