X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=bin%2Fpod2x;h=ecb7f913b76348deb5c7e45c41c02a739902fcfe;hp=8c020062c8bb2d2413f470e796e031654505be41;hb=d5109b4395d35a615f36fc7629803c24d489c516;hpb=51984ac3d3da3006809c6866fdecd4ad83610731 diff --git a/bin/pod2x b/bin/pod2x index 8c020062c..ecb7f913b 100755 --- a/bin/pod2x +++ b/bin/pod2x @@ -1,31 +1,145 @@ -#!/usr/bin/perl +#!/usr/bin/perl -w -#use Pod::Text; -#$Pod::Text::termcap=1; +use strict; + +my $mw_username = 'ivan'; +chomp( my $mw_password = `cat .mw-password` ); my $site_perl = "./FS"; -#my $catman = "./catman"; -#my $catman = "./htdocs/docs/man"; -#my $html = "./htdocs/docs/man"; -my $html = "./httemplate/docs/man"; +#my $html = "Freeside:1.7:Documentation:Developer"; +my $html = "Freeside:1.9:Documentation:Developer"; + +foreach my $dir ( + $html, + map "$html/$_", qw( bin FS FS/UI FS/part_export FS/part_pkg + FS/part_event FS/part_event/Condition FS/part_event/Action + FS/ClientAPI FS/Cron FS/Misc FS/Report FS/Report/Table + FS/TicketSystem FS/UI + FS/SelfService + ) +) { + -d $dir or mkdir $dir; +} $|=1; die "Can't find $site_perl" unless -d $site_perl; #die "Can't find $catman" unless -d $catman; -die "Can't find $html" unless -d $html; +-d $html or mkdir $html; +my $count = 0; + +#make some useless links foreach my $file ( - glob("$site_perl/*.pm"), - glob("$site_perl/*/*.pm"), - glob("$site_perl/*/*/*.pm") + glob("$site_perl/bin/freeside-*"), ) { + next if $file =~ /\.pod$/; + #symlink $file, "$file.pod"; # or die "link $file to $file.pod: $!"; + #system("cp $file $file.pod"); + -e "$file.pod" or system("cp $file $file.pod"); +} + +#just for filename_to_pagename for now +use WWW::Mediawiki::Client; +my $mvs = WWW::Mediawiki::Client->new( + 'host' => 'www.freeside.biz', + 'wiki_path' => 'mediawiki/index.php', + 'username' => $mw_username, + 'password' => $mw_password, + #'commit_message' => 'import from POD' + ); +#$mvs->do_login; + +use MediaWiki; + +my $c = MediaWiki->new; +# $is_ok = $c->setup("config.ini"); +$c->setup({ + 'bot' => { 'user' => $mw_username, 'pass' => $mw_password }, + 'wiki' => { + 'host' => 'www.freeside.biz', + 'path' => 'mediawiki', + #'has_query' => 1, + + } +}) or die "Mediawiki->setup failed"; + +my @files; +if ( @ARGV ) { + @files = @ARGV; +} else { + @files = ( + glob("$site_perl/*.pm"), + glob("$site_perl/*/*.pm"), + glob("$site_perl/*/*/*.pm"), + glob("$site_perl/*/*/*/*.pm"), + glob("$site_perl/bin/*.pod"), + glob("./fs_selfservice/FS-SelfService/*.pm"), + glob("./fs_selfservice/FS-SelfService/*/*.pm"), + ); + +} + +foreach my $file (@files) { + next if $file =~ /(^|\/)blib\//; + next if $file =~ /(^|\/)CVS\//; #$file =~ /\/([\w\-]+)\.pm$/ or die "oops file $file"; - $file =~ /$site_perl\/(.*)\.pm$/ or die "oops file $file"; - my $name = $1; - print "$name\n"; + my $name; + if ( $file =~ /fs_\w+\/FS\-\w+\/(.*)\.pm$/ ) { + $name = "FS/$1"; + } elsif ( $file =~ /$site_perl\/(.*)\.(pm|pod)$/ ) { + $name = $1; + } else { + die "oops file $file"; + } + + #exit if $count++ == 10; + my $htmlroot = join('/', map '..',1..(scalar($file =~ tr/\///)-2)) || '.'; -# system "pod2text $file >$catman/$name.txt"; - system "pod2html --podroot=$site_perl --podpath=./FS:./FS/UI:. --norecurse --htmlroot=$htmlroot $file >$html/$name.html"; -# system "pod2html $file >$html/$name.html"; + + system "pod2wiki --style mediawiki $file >$html/$name.rawwiki"; + + if ( -e "$html/$name.rawwiki" ) { + print "processing $name\n"; + } else { + print "skipping $name\n"; + next; + }; + +# $mvs->do_update("$html/$name.wiki"); + + + my $text = ''; + open(RAW, "<$html/$name.rawwiki") or die $!; + while () { + s/\[\[([^#p][^\]]*)\]\]/"[[$html\/". w_e($1). "|$1]]"/ge; + $text .= $_; + } + close RAW; + + my $pagename = $mvs->filename_to_pagename("$html/$name.wiki"); + #print " uploading to $pagename\n"; + + $c->text( $pagename, $text ); + +} + +sub w_e { + my $s = shift; + $s =~ s/_/ /g; + $s =~ s/::/\//g; + $s =~ s/^freeside-/bin\/freeside-/g; + $s; } + + +## system "pod2text $file >$catman/$name.txt"; +## +# system "pod2html --podroot=$site_perl --podpath=./FS:./FS/UI:.:./bin --norecurse --htmlroot=$htmlroot $file >$html/$name.html"; +# #system "pod2html --podroot=$site_perl --htmlroot=$htmlroot $file >$html/$name.html"; +## system "pod2html $file >$html/$name.html"; +## + +#remove the useless links +unlink glob("$site_perl/bin/*.pod"); +