summaryrefslogtreecommitdiff
path: root/fml/lib/FML/Process/DocViewer.pm
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-03-25 04:09:00 +0000
committerfukachan <fukachan>2001-03-25 04:09:00 +0000
commit3374db863ed2dae1498612652ec73dc2d0e9992c (patch)
tree3684f9fc5347ecea48fe885be19490b26ca9aacb /fml/lib/FML/Process/DocViewer.pm
parentedc6853ae95b50843c40ac199147c1836e4761f4 (diff)
downloadfml8-3374db863ed2dae1498612652ec73dc2d0e9992c.tar.gz
fml8-3374db863ed2dae1498612652ec73dc2d0e9992c.tar.bz2
fml8-3374db863ed2dae1498612652ec73dc2d0e9992c.zip
create FML::Process::DocView class for fmldoc program, whereas
FML::Process::Configure controls 'fmlconf' and 'makefml' since 'fmlconf' is considered as an alias of makefml showconf.
Diffstat (limited to 'fml/lib/FML/Process/DocViewer.pm')
-rw-r--r--fml/lib/FML/Process/DocViewer.pm151
1 files changed, 151 insertions, 0 deletions
diff --git a/fml/lib/FML/Process/DocViewer.pm b/fml/lib/FML/Process/DocViewer.pm
new file mode 100644
index 00000000..6b0c192c
--- /dev/null
+++ b/fml/lib/FML/Process/DocViewer.pm
@@ -0,0 +1,151 @@
+#!/usr/local/bin/perl -w
+#-*- perl -*-
+#
+# Copyright (C) 2000 Ken'ichi Fukamachi
+# All rights reserved.
+#
+# $FML$
+#
+
+package FML::Process::DocViewer;
+
+use vars qw($debug @ISA @EXPORT @EXPORT_OK);
+use strict;
+use Carp;
+
+use FML::Process::Kernel;
+use FML::Log qw(Log LogWarn LogError);
+use FML::Config;
+
+@ISA = qw(FML::Process::Kernel Exporter);
+
+
+=head1 NAME
+
+FML::Process::DocViewer -- fmldoc wrapper
+
+=head1 SYNOPSIS
+
+ use FML::Process::DocViewer;
+ $curproc = new FML::Process::DocViewer;
+ $curproc->run();
+
+=head1 DESCRIPTION
+
+FML::Process::DocViewer is the wrapper for fmldoc.
+See C<FML::Process::Flow> for each method definition.
+
+=head2 MODULES
+
+C<fmlconf> bootstraps itself in this order.
+
+ libexec/loader -> FML::Process::Switch -> FML::Process::DocViewer
+
+=head1 METHODS
+
+=head2 C<new($args)>
+
+usual constructor.
+
+=head2 C<prepare($args)>
+
+dummy.
+
+=cut
+
+# Descriptions: constructor
+# Arguments: $self $args
+# Side Effects: none
+# Return Value: FML::Process::DocViewer object
+sub new
+{
+ my ($self, $args) = @_;
+ my $type = ref($self) || $self;
+ my $curproc = new FML::Process::Kernel $args;
+ return bless $curproc, $type;
+}
+
+
+# Descriptions: dummy yet now
+# Arguments: $self $args
+# Side Effects: none
+# Return Value: none
+sub prepare { ; }
+
+
+=head2 C<run($args)>
+
+the main top level dispatcher for C<fmlconf>, C<fmldoc> and C<makefml>.
+For example, it kicks off internal function C<_fmlconf($args)> for
+C<fmlconf($args)>.
+
+=cut
+
+# Descriptions: just a switch
+# Arguments: $self $args
+# Side Effects: none
+# Return Value: none
+sub run
+{
+ my ($curproc, $args) = @_;
+ my $config = $curproc->{ config };
+ my $myname = $args->{ myname };
+ my $argv = $args->{ ARGV };
+
+ if ($myname eq 'fmldoc') {
+ $curproc->_fmldoc($args);
+ }
+ else {
+ my $command = $argv->[ 0 ] || croak("command not specified\n");
+ }
+}
+
+
+# Descriptions: fmldoc wrapper / top level dispacher
+# Arguments: $self $args
+# Side Effects: none
+# Return Value: none
+sub _fmldoc
+{
+ my ($curproc, $args) = @_;
+ my $config = $curproc->{ config };
+ my $myname = $args->{ myname };
+ my $argv = $args->{ ARGV };
+
+ my (@opts);
+ push(@opts, '-v') if $args->{ options }->{ v };
+ push(@opts, '-t') if $args->{ options }->{ t };
+ push(@opts, '-u') if $args->{ options }->{ u };
+ push(@opts, '-m') if $args->{ options }->{ m };
+ push(@opts, '-l') if $args->{ options }->{ l };
+
+ exec 'perldoc', @opts, @$argv;
+}
+
+
+# dummy to avoid the error ( undefined function )
+sub AUTOLOAD
+{
+ ;
+}
+
+=head1 AUTHOR
+
+Ken'ichi Fukamachi
+
+=head1 COPYRIGHT
+
+Copyright (C) 2001 Ken'ichi Fukamachi
+
+All rights reserved. This program is free software; you can
+redistribute it and/or modify it under the same terms as Perl itself.
+
+=head1 HISTORY
+
+FML::Process::DocViewer appeared in fml5 mailing list driver package.
+See C<http://www.fml.org/> for more details.
+
+=cut
+
+
+1;