/************************************************************************** $VER: DO5-Pack_kat.rexx 1.0 (19.12.95) Georges 'Melkor' Goncalves Written by Georges 'Melkor' Goncalves and Eric Sauvageau. ARexx Script for DOpus 5 to crunch selected files via XPKatana. Usage: DO5-Pack_kat.rexx Note: XPKatana is copyright © Eric Sauvageau and it does NOT belong to the DOpus5 distribution. It's ShareWare. ***************************************************************************/ Options Results Options FailAt 25 /* Adjust this as needed */ XPKATANA_PATH = "SYS:Utilities/XPKatana" Parse Arg packer /* Should check if DOpus is really there */ If ~Show('p',"DOPUS.1") Then Do Say "This script should be used with DirectoryOpus running!" Exit 20 End /* We have to actually verify is XPKatana is running. */ If ~SHOW('p',"KATANA") Then Do /* IF XPKatana is not already running, start it ! */ started = 1 Address Command "run <>NIL: "||XPKATANA_PATH||" ICONIFY" Address Command "WaitForPort KATANA" End address 'DOPUS.1' If packer = "" Then Do dopus request '"You need to supply a packer as the argument!" Damn!' Address 'KATANA' If started = 1 Then Do Quit End Exit 0 End lister query source /* Is there any source lister ? */ SRCHandle=RESULT if SRCHandle="RESULT" Then Do dopus request '"You need a source lister to use this script :-)" Damn!' Address 'KATANA' If started = 1 Then Do Quit End Exit 0 end lister query SRCHandle selfiles /* Returns the name of selected files separated by space */ Files=RESULT lister query SRCHandle numselfiles ; selected = result if selected=0 Then Do dopus request '"No source file(s) selected!" Damn!' Address 'KATANA' If started = 1 Then Do Quit End Exit 0 end lister set SRChandle busy 1 /* Busy the lister */ lister query SRChandle path /* Returns the source path */ Path = RESULT /* Talk to XPKatana */ Address 'KATANA' GetFlag NOPROGRESS ; oldflag = result SetFlags NOPROGRESS 1 SetPacker packer 100 ; error = result If error ~= "OK" Then Do Address 'DOPUS.1' dopus request '"Invalid packer supplied!" Damn!' Signal ExitScript End Do Forever Parse Var Files afile Files /* Pull the first file and keep the remain */ If afile == '' Then Leave completefile = path||Strip(afile,'B','"') /* Add path, strip "" */ SetSource completefile Pack ; error = result /* Un-select the processed file */ Address 'DOPUS.1' If error = 'ABORT' Then Do dopus request '"Error while packing "'||afile||'"!" Damn!' End lister select SRCHandle afile off Address 'KATANA' /* Switch back to the Katana port */ End ExitScript: /* Close XPKatana if we started it */ Address 'KATANA' If started = 1 Then Do Quit End Else Do SetFlags NOPROGRESS oldflag End Address 'DOPUS.1' lister set SRCHandle busy 0 /* Un-busy the lister */ lister refresh SRCHandle