#!/usr/bin/perl # # $Id: fconf2dir,v 1.1 2002/06/13 17:31:57 stas Rel $ # # This script parses HYSKY fileareas file and produces export directories to # T-Mail-compatible dir.frq file and BLstBBS-format file with descriptions. # # (c) 2002 by Andrew Mamohin 2:5022/16 # Changes by Dmitry Pankov 2:5022/81 # Patched by Stas Degteff 2:5080/102 if( $#ARGV <0 ){ print < [] [] Example: fconf2dir config.fareas dir.frq blstbbs.dir fconf2dir config.fareas dir.frq fconf2dir config.fareas USAGE exit; } $freqfile = "dir.frq"; $freqfile = $ARGV[1] if( $ARGV[1] ); $bbs = $ARGV[2] if( $ARGV[2] ); if( $ARGV[0] ){ $fidoconfig = $ARGV[0]; }elsif{ $fidoconfig = $ENV{fidoconfig} if( $ENV{fidoconfig} ); $fidoconfig = $ENV{FIDOCONFIG} if( $ENV{FIDOCONFIG} ); }else{ $fidoconfig = "/etc/fido/config"; } if ( !(-f $fidoconfig) ) { die "$fidoconfig not exist!"; } open(AREAS, "$fidoconfig") || die("Can't open $fidoconfig: $!"); open(FREQ, ">$freqfile") || die("Can't create $freqfile: $!"); if($bbs){ open(BBS, ">$bbs") || die("Can't create $bbs: $!"); } while () { next if( /^Filearea\s+[^\s]+\s+passthrough\s/i ); s/^(.*)\#.*$/$1/; # Strip comments, if CommentChar = # if (/^\s*FileArea\s+(\S+)\s+(\S+).*?\-d\s*?\"(.*?)\".*$/i) { print FREQ "$2\n"; if($bbs){ print BBS "Name $1 \($3\)\nPath $2\n\n" } } else { if (/^\s*FileArea\s+(\S+)\s+(\S+).*$/i) { print FREQ "$2\n"; if($bbs){ print BBS "Name $1\nPath $2\n" } } } } close FREQ; close AREAS; close BBS if($bbs);