Short: C-Net TIC and nodelist processor Author: Gary "Spitfire" McCulloch Uploader: spitfiretn gmail com Type: comm/fido Version: 3.0 Requires: C-Net/5 Amiga Pro, ARexx, FTN TIC files, TrapList Architecture: generic Distribution: Aminet Kurz: C-Net TIC- und Nodelist-Prozessor ROFTIC.REXX Reign of Fire BBS C-Net/5 TIC / Nodelist / TrapList Processor =============================================================================== DESCRIPTION =============================================================================== roftic.rexx is an ARexx-based TIC file processor written for C-Net/5 Amiga SysOps. It processes incoming FTN-style TIC files, reads the FILE and AREA fields, and places received files into the correct C-Net/5 file areas using roftic.cfg. It also supports automatic nodelist maintenance. When a nodelist TIC is received, roftic.rexx stages the file, extracts it if needed, locates the real nodelist, installs it into the C-Net/5 nodelist directory, and runs TrapList only after a successful nodelist update. The script is designed to fail safely. If a required archiver is missing, if an archive cannot be extracted, if the configured AREA is missing, or if the expected file cannot be found, the inbound file and TIC are left in place so the SysOp can correct the problem and run the processor again. For full installation notes, examples, testing procedures, troubleshooting, and version history, see manual.txt. FILES INCLUDED =============================================================================== roftic.rexx Main ARexx TIC / nodelist processor roftic.rexx.info Workbench icon for launching the script readme.txt Quick overview and install notes manual.txt Full SysOp documentation roftic-example.cfg Example AREA to C-Net/5 file directory map Rename roftic-example.cfg to roftic.cfg after editing it for your system. REQUIREMENTS =============================================================================== * Commodore Amiga or compatible/emulated Amiga system * C-Net/5 Amiga Pro * ARexx available and running * FTN mailer/tosser setup receiving TIC files and files * C-Net/5 file directories already created * C-Net/5 nodelist directory available * C-Net/5 TrapList available, normally in Mail:bin/ * Archivers required for the nodelist formats your links send Recommended archivers, depending on your links: * UnZip - FTN .Z## nodelist archives * LHA - FTN .L## nodelist archives * ARC - FTN .A## nodelist archives * ARJ - FTN .J## nodelist archives * RAR - FTN .R## nodelist archives Plain archive files such as .ZIP, .LHA, .LZH, .ARC, .ARJ, and .RAR are routed by TIC AREA unless their filename uses an FTN day-of-year nodelist archive pattern such as .Z70 or .L70. QUICK INSTALL =============================================================================== 1. Copy the ROF_TIC folder into your C-Net/5 mail directory. Example: Mail:ROF_TIC/roftic.rexx 2. Make sure TrapList exists. Example: Mail:bin/TrapList 3. Edit the configuration section near the top of roftic.rexx. Important paths include: TICDIR = "Inbound:" NODELISTDIR = "Nodelist:" TEMPDIR = "Echomail:Inbound_Temp/RoFTIC" PROCESSED = "Echomail:Processed" LOGFILE = "SysData:log/RoF_TIC.log" TRAPLIST = "Mail:bin/traplist" TICCFG = "Mail:ROF_TIC/roftic.cfg" 4. Copy roftic-example.cfg to roftic.cfg. 5. Edit roftic.cfg and map each normal TIC AREA to a C-Net/5 file directory. Example: FTN_FILES UDBase0:FTN_FILES/ CNET_MODS UDBase0:CNET_MODS/ AMIGA_UTILS UDBase0:AMIGA_UTILS/ 6. Run the script manually first. From AmigaDOS Shell: RX Mail:ROF_TIC/roftic.rexx 7. Review the log after testing. BASIC PROCESSING FLOW =============================================================================== A recommended C-Net/5 maintenance flow is: 1. Mailer receives packets, files, and TIC files. 2. C-Net/5 Toss processes mail, if used in your setup. 3. roftic.rexx processes TIC files. 4. Normal TIC files are routed to UDBase0: file areas using roftic.cfg. 5. Nodelists are staged, extracted if needed, verified, and installed into Nodelist:. 6. TrapList runs only when at least one nodelist was successfully updated. NODELIST DETECTION =============================================================================== roftic.rexx uses conservative, generic nodelist detection so the script can be used by SysOps on many different FTN networks. Automatically treated as nodelist files: * Plain numeric nodelists: NETWORK.170 ARAKNET.170 CNET.170 * FTN day-of-year nodelist archives: NETWORK.Z70 NETWORK.L70 NETWORK.A70 NETWORK.J70 NETWORK.R70 * Historical FTN nodelist archive styles: NETWORK.NNA NETWORK.AXA NETWORK.NNJ NETWORK.NNR Normal archive extensions by themselves are not enough to identify a nodelist. Files such as PACK.ZIP, INFO.LHA, UTILITY.ARC, or DOCS.RAR should normally be routed by AREA through roftic.cfg. This avoids the common problem where infopacks mention "current nodelist" in the TIC description and accidentally get processed as nodelist updates. ARCHIVED NODELIST HANDLING =============================================================================== When a day-of-year archived nodelist is received, roftic.rexx: 1. Reads the TIC FILE and AREA fields. 2. Detects the FTN archive extension, such as .Z70 or .L70. 3. Selects the proper archiver. 4. Extracts into the configured temporary directory. 5. Searches the extracted files for a usable nodelist. 6. Copies the nodelist into Nodelist:. 7. Verifies the copy. 8. Removes older matching nodelists only after the new one is verified. 9. Deletes or moves the processed TIC based on MOVETIC. 10. Runs TrapList only if a nodelist was successfully installed. If anything fails, the inbound archive and TIC are kept. SAMPLE roftic.cfg =============================================================================== Each normal file echo AREA must be mapped to a destination directory. Example: FTN_FILES UDBase0:FTN_FILES/ CNET_MODS UDBase0:CNET_MODS/ AMIGA_UTILS UDBase0:AMIGA_UTILS/ COMMODORE UDBase0:COMMODORE/ BBS_ADS UDBase0:BBS_ADS/ The AREA name must match the AREA line inside the incoming TIC file. If an AREA is not configured and the file is not detected as a nodelist, roftic.rexx leaves the file and TIC inbound for SysOp review. RUNNING =============================================================================== From AmigaDOS Shell: RX Mail:ROF_TIC/roftic.rexx From C-Net/5, call the script from your event, maintenance command, or menu setup using the path appropriate for your system. Recommended while testing: MOVETIC = 1 This moves processed TIC files to the processed directory instead of deleting them immediately. VERSION HISTORY =============================================================================== v3.0 - Public / Aminet Release ------------------------------ * Prepared ROFTIC.REXX for public release and Aminet distribution. * Updated documentation for general C-Net/5 SysOp use. * Added safer, generic nodelist detection. * Plain numeric nodelists and FTN day-of-year archive nodelists are detected automatically. * Plain archive files are routed by TIC AREA unless they use a nodelist-style FTN day-of-year archive extension. * Fixed issue where infopack ZIP files could be mistaken for nodelists. * Added safer archive handling, staging, verification, and cleanup. * TrapList runs only when at least one nodelist is successfully installed. * Failed files and TICs are left inbound for correction and rerun. v2.9 - Internal Release Candidate --------------------------------- * Added improved TIC parsing, logging, archive staging, and fallback search. * Added support for day-of-year archive extensions such as .Z70 and .L70. * Fixed extension parsing for short and day-style archive extensions. * Fixed LHA-style archived nodelist processing. * Added file_exists helper for safer TIC movement. * Fixed TrapList flow so it runs after TIC processing. * Known testing issue corrected in v3.0: plain .ZIP infopacks were initially detected too broadly as nodelists. v2.x ---- * Added normal TIC file routing by AREA using roftic.cfg. * Added safer copy and verify handling. * Added processing counters and better logging. * Added temporary staging and early nodelist replacement logic. * Added support for moving or deleting processed TIC files. v1.x ---- * Original internal Reign of Fire BBS nodelist processing scripts. * Focused mainly on receiving nodelists and placing them into the C-Net/5 nodelist directory. * Limited archive handling and file echo routing. SECURITY NOTES =============================================================================== Only process TIC files from trusted FTN links. A TIC processor moves files around your BBS file system. Incorrect TIC files, bad area names, damaged archives, or malicious input can cause problems if your system is not configured carefully. Recommended precautions: * Keep backups. * Review logs regularly. * Test one file echo and one nodelist format before live use. * Do not allow unknown TIC areas to write into important system directories. * Keep archivers in trusted locations. DISCLAIMER =============================================================================== roftic.rexx is provided as-is. Every C-Net/5 system is different. SysOps should test carefully before using this script on a live BBS. The author is not responsible for lost files, incorrect configuration, bad TIC files, damaged archives, wrong area mappings, missing archivers, archiver syntax differences, or damage caused by improper setup. Always keep backups. CREDITS =============================================================================== roftic.rexx was written and tested for: Reign of Fire BBS C-Net/5 Amiga Pro call.rofbbs.com:6800 Created for the C-Net/5 SysOp community and other retro BBS operators who want to automate TIC file handling, nodelist installation, and TrapList updates on real or emulated Amiga systems. Website: https://www.rofbbs.com SysOp: Gary "Spitfire" McCulloch Networks: ArakNet, CommodoreNet, DiscipleNet, PiNet, and RetroNet =============================================================================== END OF README.TXT SpitfireTN Entertainment ===============================================================================