X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=maint%2FMakefile.PL.inc%2F53_autogen_pod.pl;h=1c5530fa1aff24414e0c33d450dc24c4ac54802b;hb=7c29ff830bf11e12320f25964643e627c72cb5b1;hp=4efe837f2b9cb0cf5daab029cff3f0df84f093af;hpb=4a51243f734714ee80370ede83b4a67e7fa005b7;p=dbsrgits%2FDBIx-Class.git diff --git a/maint/Makefile.PL.inc/53_autogen_pod.pl b/maint/Makefile.PL.inc/53_autogen_pod.pl index 4efe837..1c5530f 100644 --- a/maint/Makefile.PL.inc/53_autogen_pod.pl +++ b/maint/Makefile.PL.inc/53_autogen_pod.pl @@ -4,7 +4,7 @@ use File::Glob(); # leftovers in old checkouts unlink 'lib/DBIx/Class/Optional/Dependencies.pod' if -f 'lib/DBIx/Class/Optional/Dependencies.pod'; -File::Path::rmtree( File::Glob::bsd_glob('.generated_pod'), { verbose => 0 } ) +File::Path::rmtree([ '.generated_pod' ]) if -d '.generated_pod'; my $pod_dir = 'maint/.Generated_Pod'; @@ -12,7 +12,7 @@ my $ver = Meta->version; # cleanup the generated pod dir (again - kill leftovers from old checkouts) if (-d $pod_dir) { - File::Path::rmtree( File::Glob::bsd_glob("$pod_dir/*"), { verbose => 0 } ); + File::Path::rmtree([ File::Glob::bsd_glob("$pod_dir/*") ]); } else { mkdir $pod_dir or die "Unable to create $pod_dir: $!"; @@ -22,10 +22,17 @@ else { { print "Regenerating Optional/Dependencies.pod\n"; - # this should always succeed - hence no error checking - # if someone breaks OptDeps - travis should catch it - require DBIx::Class::Optional::Dependencies; - DBIx::Class::Optional::Dependencies->_gen_pod ($ver, "$pod_dir/lib"); + eval { + require DBIx::Class::Optional::Dependencies; + DBIx::Class::Optional::Dependencies->_gen_pod ($ver, "$pod_dir/lib"); + 1; + } + or + printf ("FAILED!!! Subsequent `make dist` will fail. %s\n", + $ENV{DBICDIST_DEBUG} + ? "Full error: $@" + : 'Re-run with $ENV{DBICDIST_DEBUG} set for more info' + ); postamble <<"EOP"; @@ -56,6 +63,7 @@ EOP my $great_success; { local @ARGV = ('--documentation-as-pod', $pod_fn); + local $0 = 'dbicadmin'; local *CORE::GLOBAL::exit = sub { $great_success++; die; }; do 'script/dbicadmin'; } @@ -92,6 +100,35 @@ EOP } +# generate the DBIx/Class.pod only during distdir +{ + my $dist_pod_fn = "$pod_dir/lib/DBIx/Class.pod"; + + postamble <<"EOP"; + +clonedir_generate_files : dbic_distdir_gen_dbic_pod + +dbic_distdir_gen_dbic_pod : + +\tperldoc -u lib/DBIx/Class.pm > $dist_pod_fn +\t@{[ $mm_proto->oneliner( + "s!^.*?this line is replaced with the author list.*! qq{List of the awesome contributors who made DBIC v$ver possible\\n\\n} . qx(\$^X -Ilib maint/gen_pod_authors)!me", + [qw( -0777 -p -i.arghwin32 )] +) ]} $dist_pod_fn +\t\$(RM_F) $dist_pod_fn.arghwin32 + +create_distdir : dbic_distdir_defang_authors + +# Remove the maintainer-only warning (be nice ;) +dbic_distdir_defang_authors : +\t@{[ $mm_proto->oneliner('s/ ^ \s* \# \s* \*\*\* .+ \n ( ^ \s* \# \s*? \n )? //xmg', [qw( -0777 -p -i.arghwin32 )] ) ]} \$(DISTVNAME)/AUTHORS +@{[ $crlf_fixup->( '$(DISTVNAME)/AUTHORS' ) ]} +\t\$(RM_F) \$(DISTVNAME)/AUTHORS.arghwin32 + +EOP +} + + # on some OSes generated files may have an incorrect \n - fix it # so that the xt tests pass on a fresh checkout (also shipping a # dist with CRLFs is beyond obnoxious) @@ -119,7 +156,7 @@ clonedir_post_generate_files : dbic_clonedir_copy_generated_pod dbic_clonedir_copy_generated_pod : \t\$(RM_F) $pod_dir.packlist \t@{[ - $mm_proto->oneliner("install([ from_to => {q($pod_dir) => File::Spec->curdir(), write => q($pod_dir.packlist)}, verbose => 0, uninstall_shadows => 0, skip => [] ])", ['-MExtUtils::Install']) + $mm_proto->oneliner("install([ from_to => {q($pod_dir) => './', write => q($pod_dir.packlist)}, verbose => 0, uninstall_shadows => 0, skip => [] ])", ['-MExtUtils::Install']) ]} EOP @@ -133,9 +170,8 @@ EOP clonedir_cleanup_generated_files : dbic_clonedir_cleanup_generated_pod_copies dbic_clonedir_cleanup_generated_pod_copies : -\t@{[ - $mm_proto->oneliner("uninstall(q($pod_dir.packlist))", ['-MExtUtils::Install']) -]} +\t@{[ $mm_proto->oneliner('chomp && unlink || die', ['-n']) ]} $pod_dir.packlist +\t\$(RM_F) $pod_dir.packlist EOP }