Created
March 28, 2011 06:41
-
-
Save Cside/890086 to your computer and use it in GitHub Desktop.
Makefile.PLのrequiresとかtest_requireを勝手につくる
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
use strict; | |
use warnings; | |
use Perl6::Say; | |
use List::MoreUtils qw/uniq/; | |
use Regexp::Assemble; | |
# Settings | |
my $module_name = 'MyModule::Name'; | |
my @main = qw/lib bin/; | |
my @test = qw/t xt/; | |
# =========================================== | |
my $reg_std_modules = list_to_regex( | |
'^'.$module_name, | |
map { | |
chomp; '^'.$_.'$'; | |
} | |
<DATA> | |
); | |
my @ack_results = | |
map { | |
chomp; $_; | |
} | |
`ack '^use '` | |
; | |
my @requires = filter("requires", map { '^'.$_.'/' } @main); | |
my @test_requires = filter("test_requires", map { '^'.$_.'/' } @test); | |
sub filter { | |
my ($require_func, @dir) = @_; | |
my $reg_dir = list_to_regex(@dir); | |
map { | |
"$require_func \'$_\';" | |
} | |
sort { | |
$a cmp $b | |
} | |
uniq | |
grep { | |
# 標準モジュールは除外 | |
$_ !~ m/$reg_std_modules/o | |
} | |
map { | |
($_ =~ /use ([^\s;]+)/o)[0] | |
} | |
grep { | |
# ディレクトリでgrep | |
$_ =~ m#$reg_dir#; | |
} | |
@ack_results; | |
} | |
say $_ for @requires; | |
say ""; | |
say $_ for @test_requires; | |
sub list_to_regex { | |
my @list = @_; | |
my $ra = Regexp::Assemble->new; | |
$ra->add($_) for @list; | |
$ra->re; | |
} | |
__DATA__ | |
^[0-9\.]+$ | |
AnyDBM_File | |
Attribute::Handlers | |
AutoLoader | |
AutoSplit | |
B | |
B::Asmdata | |
B::Assembler | |
B::Bblock | |
B::Bytecode | |
B::C | |
B::CC | |
B::Concise | |
B::Debug | |
B::Deparse | |
B::Disassembler | |
B::Lint | |
B::Lint::Debug | |
B::Showlex | |
B::Stackobj | |
B::Stash | |
B::Terse | |
B::Xref | |
Benchmark | |
ByteLoader | |
CGI | |
CGI::Apache | |
CGI::Carp | |
CGI::Cookie | |
CGI::Fast | |
CGI::Pretty | |
CGI::Push | |
CGI::Switch | |
CGI::Util | |
CPAN | |
CPAN::Debug | |
CPAN::DeferedCode | |
CPAN::Distroprefs | |
CPAN::FirstTime | |
CPAN::HandleConfig | |
CPAN::Kwalify | |
CPAN::Nox | |
CPAN::Queue | |
CPAN::Tarzip | |
CPAN::Version | |
Carp | |
Carp::Heavy | |
Class::ISA | |
Class::Struct | |
Config | |
Cwd | |
DB | |
DBM_Filter | |
DBM_Filter::compress | |
DBM_Filter::encode | |
DBM_Filter::int32 | |
DBM_Filter::null | |
DBM_Filter::utf8 | |
DB_File | |
DCLsym | |
Data::Dumper | |
Devel::DProf | |
Devel::InnerPackage | |
Devel::PPPort | |
Devel::Peek | |
Devel::SelfStubber | |
Digest | |
Digest::MD5 | |
Digest::base | |
Digest::file | |
DirHandle | |
Dumpvalue | |
DynaLoader | |
Encode | |
Encode::Alias | |
Encode::Byte | |
Encode::CJKConstants | |
Encode::CN | |
Encode::CN::HZ | |
Encode::Config | |
Encode::EBCDIC | |
Encode::Encoder | |
Encode::Encoding | |
Encode::GSM0338 | |
Encode::Guess | |
Encode::JP | |
Encode::JP::H2Z | |
Encode::JP::JIS7 | |
Encode::KR | |
Encode::KR::2022_KR | |
Encode::MIME::Header | |
Encode::MIME::Header::ISO_2022_JP | |
Encode::MIME::Name | |
Encode::Symbol | |
Encode::TW | |
Encode::Unicode | |
Encode::Unicode::UTF7 | |
English | |
Env | |
Errno | |
Exporter | |
Exporter::Heavy | |
ExtUtils::Command | |
ExtUtils::Command::MM | |
ExtUtils::Constant | |
ExtUtils::Constant::Base | |
ExtUtils::Constant::ProxySubs | |
ExtUtils::Constant::Utils | |
ExtUtils::Constant::XS | |
ExtUtils::Embed | |
ExtUtils::Install | |
ExtUtils::Installed | |
ExtUtils::Liblist | |
ExtUtils::Liblist::Kid | |
ExtUtils::MM | |
ExtUtils::MM_AIX | |
ExtUtils::MM_Any | |
ExtUtils::MM_BeOS | |
ExtUtils::MM_Cygwin | |
ExtUtils::MM_DOS | |
ExtUtils::MM_Darwin | |
ExtUtils::MM_MacOS | |
ExtUtils::MM_NW5 | |
ExtUtils::MM_OS2 | |
ExtUtils::MM_QNX | |
ExtUtils::MM_UWIN | |
ExtUtils::MM_Unix | |
ExtUtils::MM_VMS | |
ExtUtils::MM_VOS | |
ExtUtils::MM_Win32 | |
ExtUtils::MM_Win95 | |
ExtUtils::MY | |
ExtUtils::MakeMaker | |
ExtUtils::MakeMaker::Config | |
ExtUtils::MakeMaker::bytes | |
ExtUtils::MakeMaker::vmsish | |
ExtUtils::Manifest | |
ExtUtils::Miniperl | |
ExtUtils::Mkbootstrap | |
ExtUtils::Mksymlists | |
ExtUtils::Packlist | |
ExtUtils::ParseXS | |
ExtUtils::testlib | |
Fatal | |
Fcntl | |
File::Basename | |
File::CheckTree | |
File::Compare | |
File::Copy | |
File::DosGlob | |
File::Find | |
File::Glob | |
File::Path | |
File::Spec | |
File::Spec::Cygwin | |
File::Spec::Epoc | |
File::Spec::Functions | |
File::Spec::Mac | |
File::Spec::OS2 | |
File::Spec::Unix | |
File::Spec::VMS | |
File::Spec::Win32 | |
File::Temp | |
File::stat | |
FileCache | |
FileHandle | |
Filespec | |
Filter::Simple | |
Filter::Util::Call | |
FindBin | |
GDBM_File | |
Getopt::Long | |
Getopt::Std | |
Hash::Util | |
I18N::Collate | |
I18N::LangTags | |
I18N::LangTags::Detect | |
I18N::LangTags::List | |
I18N::Langinfo | |
IO | |
IO::Dir | |
IO::File | |
IO::Handle | |
IO::Pipe | |
IO::Poll | |
IO::Seekable | |
IO::Select | |
IO::Socket | |
IO::Socket::INET | |
IO::Socket::UNIX | |
IPC::Msg | |
IPC::Open2 | |
IPC::Open3 | |
IPC::Semaphore | |
IPC::SharedMem | |
IPC::SysV | |
IPC::lib::IPC::Msg | |
IPC::lib::IPC::Semaphore | |
IPC::lib::IPC::SharedMem | |
List::Util | |
Locale::Constants | |
Locale::Country | |
Locale::Currency | |
Locale::Language | |
Locale::Maketext | |
Locale::Maketext::Guts | |
Locale::Maketext::GutsLoader | |
Locale::Script | |
MIME::Base64 | |
MIME::QuotedPrint | |
Math::BigFloat | |
Math::BigFloat::Trace | |
Math::BigInt | |
Math::BigInt::Calc | |
Math::BigInt::CalcEmu | |
Math::BigInt::Trace | |
Math::BigRat | |
Math::Complex | |
Math::Trig | |
Memoize | |
Memoize::AnyDBM_File | |
Memoize::Expire | |
Memoize::ExpireFile | |
Memoize::ExpireTest | |
Memoize::NDBM_File | |
Memoize::SDBM_File | |
Memoize::Storable | |
Module::CoreList | |
Module::Pluggable | |
Module::Pluggable::Object | |
Module::Pluggable::lib::Devel::InnerPackage | |
NDBM_File | |
NEXT | |
Net::Cmd | |
Net::Config | |
Net::Domain | |
Net::FTP | |
Net::FTP::A | |
Net::FTP::E | |
Net::FTP::I | |
Net::FTP::L | |
Net::FTP::dataconn | |
Net::NNTP | |
Net::Netrc | |
Net::POP3 | |
Net::Ping | |
Net::SMTP | |
Net::Time | |
Net::hostent | |
Net::netent | |
Net::protoent | |
Net::servent | |
O | |
ODBM_File | |
Opcode | |
POSIX | |
PerlIO | |
PerlIO::encoding | |
PerlIO::scalar | |
PerlIO::via | |
PerlIO::via::QuotedPrint | |
Pod::Checker | |
Pod::Find | |
Pod::Functions | |
Pod::Html | |
Pod::InputObjects | |
Pod::LaTeX | |
Pod::Man | |
Pod::ParseLink | |
Pod::ParseUtils | |
Pod::Parser | |
Pod::Perldoc | |
Pod::Perldoc::BaseTo | |
Pod::Perldoc::GetOptsOO | |
Pod::Perldoc::ToChecker | |
Pod::Perldoc::ToMan | |
Pod::Perldoc::ToNroff | |
Pod::Perldoc::ToPod | |
Pod::Perldoc::ToRtf | |
Pod::Perldoc::ToText | |
Pod::Perldoc::ToTk | |
Pod::Perldoc::ToXml | |
Pod::PlainText | |
Pod::Plainer | |
Pod::Select | |
Pod::Text | |
Pod::Text::Color | |
Pod::Text::Overstrike | |
Pod::Text::Termcap | |
Pod::Usage | |
SDBM_File | |
Safe | |
Scalar::Util | |
Search::Dict | |
SelectSaver | |
SelfLoader | |
Shell | |
Socket | |
Stdio | |
Storable | |
Switch | |
Symbol | |
Sys::Hostname | |
Sys::Syslog | |
Sys::Syslog::win32::Win32 | |
Term::ANSIColor | |
Term::Cap | |
Term::Complete | |
Term::ReadLine | |
Test | |
Test::Builder | |
Test::Builder::Module | |
Test::Builder::Tester | |
Test::Builder::Tester::Color | |
Test::Harness | |
Test::Harness::Assert | |
Test::Harness::Iterator | |
Test::Harness::Point | |
Test::Harness::Results | |
Test::Harness::Straps | |
Test::Harness::Util | |
Test::More | |
Test::Simple | |
Text::Abbrev | |
Text::Balanced | |
Text::ParseWords | |
Text::Soundex | |
Text::Tabs | |
Text::Wrap | |
Thread | |
Thread::Queue | |
Thread::Semaphore | |
Thread::Signal | |
Thread::Specific | |
Tie::Array | |
Tie::File | |
Tie::Handle | |
Tie::Hash | |
Tie::Memoize | |
Tie::RefHash | |
Tie::Scalar | |
Tie::StdHandle | |
Tie::SubstrHash | |
Time::HiRes | |
Time::Local | |
Time::gmtime | |
Time::localtime | |
Time::tm | |
UNIVERSAL | |
Unicode | |
Unicode::Collate | |
Unicode::Normalize | |
Unicode::UCD | |
User::grent | |
User::pwent | |
Win32 | |
Win32API::File | |
Win32API::File::ExtUtils::Myconst2perl | |
Win32CORE | |
XS::APItest | |
XS::Typemap | |
XSLoader | |
XSSymSet | |
attributes | |
attrs | |
autouse | |
base | |
bigint | |
bignum | |
bigrat | |
blib | |
bytes | |
charnames | |
constant | |
diagnostics | |
encoding | |
fields | |
filetest | |
if | |
integer | |
less | |
lib | |
locale | |
open | |
ops | |
overload | |
re | |
sigtrap | |
sort | |
strict | |
subs | |
threads | |
threads::shared | |
utf8 | |
vars | |
vmsish | |
warnings | |
warnings::register |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment