forked from loafle/openapi-generator-original
		
	- there is no standard way for a swagger spec to define descriptive information for an endpoint API - added markdown as a format to the autodoc script - added some version information to autogenerated docs
		
			
				
	
	
		
			78 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
#!/usr/bin/perl
 | 
						|
use FindBin;
 | 
						|
use File::Spec;
 | 
						|
use lib File::Spec->catdir($FindBin::Bin, '..', 'lib');
 | 
						|
 | 
						|
use Moose::Util qw(apply_all_roles);
 | 
						|
use Getopt::Std;
 | 
						|
 
 | 
						|
my %options=();
 | 
						|
getopts("wnphmHc:", \%options);
 | 
						|
help if $options{h};
 | 
						|
 | 
						|
my $my_app = $options{c} || 'My::App';
 | 
						|
 | 
						|
if ($options{c}) {
 | 
						|
	eval <<LOAD;
 | 
						|
use $my_app;
 | 
						|
apply_all_roles($my_app, "WWW::SwaggerClient::Role::AutoDoc");
 | 
						|
LOAD
 | 
						|
	die $@ if $@;
 | 
						|
}
 | 
						|
else {
 | 
						|
	package My::App;
 | 
						|
	use Moose;
 | 
						|
	with ('WWW::SwaggerClient::Role', 'WWW::SwaggerClient::Role::AutoDoc');
 | 
						|
}
 | 
						|
 | 
						|
package main;
 | 
						|
 | 
						|
my $opt;
 | 
						|
$opt = 'wide' if $options{w};
 | 
						|
$opt = 'narrow' if $options{n};
 | 
						|
 | 
						|
$opt = 'pod' if $options{p};
 | 
						|
$opt = 'pod' if $options{H};
 | 
						|
$opt = 'pod' if $options{m};
 | 
						|
 | 
						|
$opt ||= 'wide';
 | 
						|
 | 
						|
my $api = $my_app->new;
 | 
						|
 | 
						|
if ($options{H}) {
 | 
						|
	my $pod2html = "pod2html --backlink --css http://st.pimg.net/tucs/style.css?3";
 | 
						|
	open STDOUT, "| $pod2html" or die "Can't fork: $!";
 | 
						|
	$api->autodoc($opt);
 | 
						|
	close STDOUT or die "Can't close: $!";
 | 
						|
}
 | 
						|
elsif ($options{m}) {
 | 
						|
	my $pod2markdown = "pod2markdown --html-encode-chars 1";
 | 
						|
	open STDOUT, "| $pod2markdown" or die "Can't fork: $!";
 | 
						|
	$api->autodoc($opt);
 | 
						|
	close STDOUT or die "Can't close: $!";
 | 
						|
}
 | 
						|
else {
 | 
						|
	$api->autodoc($opt);
 | 
						|
}
 | 
						|
 | 
						|
exit(0);
 | 
						|
 | 
						|
# --------------------
 | 
						|
sub help {
 | 
						|
	print <<HELP;
 | 
						|
Usage: autodoc [OPTION] [-c My::App::Class]
 | 
						|
 | 
						|
  -w           wide format (default)
 | 
						|
  -n           narrow format
 | 
						|
  -p           POD format 
 | 
						|
  -H           HTML format 
 | 
						|
  -m           Markdown format
 | 
						|
  -h           print this help message
 | 
						|
  -c           your application class
 | 
						|
 | 
						|
HELP
 | 
						|
 | 
						|
	exit(0);
 | 
						|
}
 | 
						|
 |