package Task::DWIM::Science; use 5.008; use strict; use warnings; our $VERSION = '0.07'; my %modules; # based on Task-Kensho-0.33 sub get_modules { read_modules('Async.txt'); # Task-Kensho-Async-0.28 read_modules('Catalyst.txt'); # Task-Kensho-WebDev-0.29 -> Task-Catalyst-4.02 read_modules('CLI.txt'); # Task-Kensho-CLI-0.29 read_modules('Config.txt'); # Task-Kensho-Config-0.28 read_modules('CPAN.txt'); # Task-Kensho-ModuleDev-0.28 read_modules('Compression.txt'); # read_modules('Dancer.txt'); # read_modules('Database.txt'); # Task-Kensho-DBDev-0.28 read_modules('DateTime.txt'); # Task-Kensho-Dates-0.28 read_modules('DistZilla.txt'); # Task-Kensho-ModuleDev-0.28 read_modules('Email.txt'); # Task-Kensho-Email-0.28 read_modules('Encryption.txt'); # read_modules('Exceptions.txt'); # Task-Kensho-Exceptions-0.28 # Task-Kensho-Hackery-0.28 in various places read_modules('Logging.txt'); # Task-Kensho-Logging-0.01 read_modules('Modules.txt'); # read_modules('Moose.txt'); # Task-Kensho-OOP-0.28 -> Task-Moose-0.03 (TryCatch moved to Exceptions) read_modules('OOP.txt'); # # Task-Kensho-Scalability-0.28 (CHI) read_modules('Serialization.txt'); # read_modules('Science.txt'); # read_modules('Spreadsheet.txt'); # Task-Kensho-ExcelCSV-0.28 read_modules('Test.txt'); # Task-Kensho-Testing-0.29 # Task-Kensho-Toolchain-0.28 (App::cpanminus local::lib version) read_modules('Web.txt'); # Task-Kensho-WebDev-0.29 read_modules('WebClient.txt'); # Task-Kensho-WebCrawling-0.28 read_modules('XML.txt'); # Task-Kensho-XML-0.28 read_modules('tasks.txt'); if ($^O eq 'MSWin32') { # Currently only the Windows version supports the desktop option # (it needs a threaded perl) read_modules('Desktop.txt'); read_modules('Windows.txt'); } else { read_modules('NoWindows.txt'); } return %modules; } sub read_modules { my ($file) = @_; $file = "lists/$file"; return if not -e '.git' and not -e $file; open my $fh, '<', $file or die "Could not open '$file' $!"; while (my $line = <$fh>) { chomp $line; next if $line =~ /^\s*(#.*)?$/; $line =~ s/\s*#.*//; my ($name, $version) = split /\s*=\s*/, $line; die "No version in '$line'" if not defined $version; if (exists $modules{$name}) { die "Module '$name' has 2 entries. One with '$modules{$name}' and the other one with '$version'"; } $modules{$name} = $version; } close $fh; return; } 1; __END__ =pod =head1 NAME Task::DWIM::Science - A Task module for DWIM Perl L =head1 DESCRIPTION Just a list of modules to be installed as part of the DWIM Perl distribution =head1 AUTHOR Gabor Szabo Eszabgab@cpan.orgE If you are interested, contact me to take over the maintenance. =head1 SEE ALSO L, L =head1 COPYRIGHT Copyright 2012 Gabor Szabo. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut