Annotation of embedaddon/coova-chilli/doc/fmttxt.pl, revision 1.1

1.1     ! misho       1: #!/usr/bin/perl
        !             2: # by david bird - to format stuff in this directory
        !             3: 
        !             4: sub trim {
        !             5:     my $line = shift;
        !             6:     $line =~ s/^\s+//g;
        !             7:     $line =~ s/\s+$//g;
        !             8:     $line;
        !             9: }
        !            10: 
        !            11: sub man2wiki {
        !            12:     $r = 0;
        !            13:     $in_tp=0;
        !            14:     $in_tp_s=0;
        !            15:     $in_ex=0;
        !            16:     $nl=0;
        !            17:     $in_rs=0;
        !            18: 
        !            19:     $out='';
        !            20: 
        !            21:     while (<STDIN>) {
        !            22:        next if (/^\.\\\"/);
        !            23:        chop;
        !            24: 
        !            25:        $line = $_;
        !            26: 
        !            27:        $line = trim($line);
        !            28: 
        !            29:        if ($line =~ /^\.TH (.*)$/) {
        !            30:            $nl=0;
        !            31:            @a = split / /, $line;
        !            32:            $out .= "= [[CoovaChilli]] - ".trim($a[1])."(".trim($a[2]).") =\n";
        !            33:        } elsif ($line =~ /^\.SH (.*)$/) {
        !            34:            $nl=0;
        !            35:            $l = $1;
        !            36:            $l =~ s/"//g; #"
        !            37:            $out .= "\n== ".trim($l)." ==\n\n";
        !            38:            $in_ex = ($l eq 'EXAMPLES');
        !            39:            $in_tp_s=0;
        !            40:        } elsif ($line =~ /^\.B (.*)$/) {
        !            41:            $nl=0;
        !            42:            $l = $1;
        !            43:            $l =~ s/"//g; #"
        !            44:            if ($in_tp) {
        !            45:                $out .= "; '''".trim($l)."''' ";
        !            46:            } else {
        !            47:                $out .= "'''".trim($l)."''' ";
        !            48:            }
        !            49:        } elsif ($line =~ /^\.TP/) {
        !            50:            $nl=0;
        !            51:            $in_tp=1;
        !            52:            $in_tp_s=1;
        !            53:        } elsif ($line =~ /^\.BI (.*)$/) {
        !            54:            $nl=0;
        !            55:            $l = $1;
        !            56:            $l =~ s/"//g; #"
        !            57:            @a = split / /, $l, 2;
        !            58:            if ($in_tp) {
        !            59:                $out .= "; '''".trim($a[0])."''' ";
        !            60:                $out .= "''".trim($a[1])."'' " if ($a[1]);
        !            61:            } else {
        !            62:                $out .= "'''".trim($a[0])."''' ";
        !            63:                $out .= "''".trim($a[1])."'' ";
        !            64:            }
        !            65:        } elsif ($line =~ /^\.I (.*)$/) {
        !            66:            $nl=0;
        !            67:            $out .= " " if $in_ex;
        !            68:            $out .= "''".trim($1)."'' ";
        !            69:            $out .= "BACKSLASH" if $in_ex && $line =~ /\\$/;
        !            70:            $out .= "\n " if $in_ex;
        !            71:            $out .= "\n" if $in_tp_s && $nl;
        !            72:        } elsif ($line =~ /^\.LP/) {
        !            73:        } elsif ($line =~ /^\.RS/) {
        !            74: #          $out .= "\n<dl><dd>\n";
        !            75: #          $out .= "\n: ";
        !            76:            $out .= "\n<div style='margin-left:60px;'>\n";
        !            77:            $in_rs = 1;
        !            78:        } elsif ($line =~ /^\.RE/) {
        !            79: #          $out .= "\n</dd></dl>\n";
        !            80:            if ($in_rs) {
        !            81:                $out .= "\n</div>\n";
        !            82:                $in_rs = 0;
        !            83:            }
        !            84:        } elsif ($line =~ /^\.BR (.*)$/) {
        !            85:            $nl=0;
        !            86:            $link = trim($1);
        !            87:            if ($link =~ /chilli/) {
        !            88:                $out .= "[[CoovaChilli/$link|$link]] ";
        !            89:            } else {
        !            90:                $link =~ s/\s//g;
        !            91:                $out .= "'''$link'''";
        !            92:            }
        !            93:        } else {
        !            94:            if ($line =~ /^$/) {
        !            95:                if ($nl < 1) {
        !            96:                    $out .= "\n\n";
        !            97:                }
        !            98:                $nl++;
        !            99:                $in_tp=0;
        !           100:            } else {
        !           101:                $nl=0;
        !           102:                if ($in_tp) {
        !           103:                    $out .= ": ";
        !           104:                    $in_tp=0;
        !           105:                }
        !           106:                $out .= "$line ";
        !           107:                $out .= "BACKSLASH\n " if ($in_ex && $line =~ /\\$/);
        !           108:            }
        !           109:        }
        !           110:     }
        !           111: 
        !           112:     $out =~ s/\n\n\n/\n\n/gs;
        !           113:     $out =~ s/\n\n\n/\n\n/gs;
        !           114:     $out =~ s/<[^\@>]+\@[^>]+>//sg;
        !           115:     $out =~ s/ , /, /gs;
        !           116:     $out =~ s/ \. /. /gs;
        !           117:     $out =~ s/\\//gs;
        !           118:     $out =~ s/BACKSLASH/\\/gs;
        !           119: 
        !           120:     print "<div style='float:right;'>__TOC__</div>\n";
        !           121:     print trim($out);
        !           122:     print "\n";
        !           123: }
        !           124: 
        !           125: sub attributes2wiki {
        !           126:     $r = 0;
        !           127:     while (<STDIN>) {
        !           128:        chop;
        !           129:        if (/^[a-zA-Z]/) {
        !           130:            @cols = split(/\s*:\s*/,$_,9);
        !           131:            print "|-";
        !           132:            print "style='background-color: #ddd;' " if ($r % 2);
        !           133:            print "\n";
        !           134:            $i = 0;
        !           135:            foreach (@cols) {
        !           136:                $l = 0;
        !           137:                print "| ";
        !           138:                print "style='font-weight:bold;border-right: solid 1px grey;' " if ($i < 1 && ++$l);
        !           139:                print "style='border-right: solid 1px grey;' " if ($i > 0 && $i < 8 && ++$l);
        !           140:                print "align='center' " if ($i > 1 && $i < 8 && ++$l);
        !           141:                print "align='right' " if ($i == 1 && ++$l);
        !           142:                print "nowrap='nowrap' " if ($i < 2 && ++$l);
        !           143:                print "| " if $l;
        !           144:                print $_;
        !           145:                print "\n";
        !           146:                $i++;
        !           147:            }
        !           148:            $r++;
        !           149:        }
        !           150:     }
        !           151: }
        !           152: 
        !           153: sub attributes2man {
        !           154:     $r = 0;
        !           155: 
        !           156:     $attributes='';
        !           157:     while (<STDIN>) {
        !           158:        chop;
        !           159:        if (/^[a-zA-Z]/) {
        !           160:            @cols = split(/\s*:\s*/,$_,9);
        !           161:            $attributes .= "\n";
        !           162:            $attributes .= ".TP\n";
        !           163:            $attributes .= ".B $cols[0] ($cols[1])\n";
        !           164:            $attributes .= $cols[8];
        !           165:            $attributes .= "\n";
        !           166:            $r++;
        !           167:        }
        !           168:     }
        !           169: 
        !           170:     $file = `cat chilli-radius.5.in`;
        !           171:     $file =~ s/\@ATTRIBUTES\@/$attributes/;
        !           172: 
        !           173:     print $file
        !           174: }
        !           175: 
        !           176: man2wiki() if ($ARGV[0] eq 'man2wiki');
        !           177: attributes2wiki() if ($ARGV[0] eq 'attributes2wiki');
        !           178: attributes2man() if ($ARGV[0] eq 'chilli-radius');

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>