Plack-Middleware-DBIC-QueryLog

 view release on metacpan or  search on metacpan

maint/Maker.pm  view on Meta::CPAN

package # Hide from PAUSE
  Maker;

use strict;
use warnings;

our $_caller = scalar(caller(1));
sub is_script { !$_caller }

our $_has_errors = 0;
sub has_errors { $_has_errors }

our $has_been_imported = 0;
sub import {
  if($has_been_imported) {
    return 1;
  } else {
    strict->import;
    warnings->import;
    &use_module_install;
    $has_been_imported = 1;
  }
}

sub installer_mode { -e 'META.yml' }

sub _use_module_install {
  package main;
  require inc::Module::Install;
  inc::Module::Install->import;
}

sub _try_use_module_install {
  eval {
    _use_module_install;
    1;
  }
}

sub use_module_install {
  if( &installer_mode ) {
    _use_module_install;
  } else {
    _try_use_module_install
      || log_missing_author_dependencies('Module::Install');
  }
}

sub module_install_author_plugins {
  'Module::Install::ReadmeMarkdownFromPod' => 'readme_markdown_from_pod',
  'Module::Install::Repository' => 'auto_set_repository',
  'Module::Install::Homepage' => 'auto_set_homepage',
  'Module::Install::ManifestSkip' => [manifest_skip => qw(clean) ],
  'Module::Install::AutoManifest' => 'auto_manifest';
}

sub extra_author_dependencies {
  'App::cpanminus',
  'local::lib',
  'App::local::lib::helper',
  'Module::Install',
  'App::cpanoutdated',
  'CPAN::Uploader'
}

sub list_author_dependencies {
  my %module_install_author_plugins = module_install_author_plugins;
  my @deps = (&extra_author_dependencies, keys %module_install_author_plugins);
  print join "\n", @deps;
  print "\n";
}

sub finalize_makefile {
  unless( &installer_mode ) {
    my %module_install_author_plugins = module_install_author_plugins;
    my @missing = grep { !eval "package main; use $_; 1" } keys %module_install_author_plugins;
    log_missing_author_dependencies(@missing)
      if @missing;



( run in 0.562 second using v1.01-cache-2.11-cpan-39bf76dae61 )