forked from DrSunglasses/TAEB
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile.PL
112 lines (92 loc) · 2.86 KB
/
Makefile.PL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# Load the Module::Install bundled in ./inc/
use inc::Module::Install;
# Define metadata
name 'TAEB';
all_from 'lib/TAEB.pm';
# the object system
requires 'Moose' => 0.90;
requires 'MooseX::ABC' => 0.02;
requires 'MooseX::ClassAttribute' => 0.07;
requires 'MooseX::NonMoose' => 0.07;
requires 'MooseX::Role::Parameterized' => 0.06;
requires 'MooseX::Role::Matcher' => 0.03;
requires 'MooseX::Singleton' => 0.17;
requires 'Module::Pluggable';
requires 'namespace::autoclean';
# parse escape codes into an addressable screen
requires 'Term::VT102::ZeroBased';
# print on an addressable screen
requires 'Curses';
# logging
requires 'Log::Dispatch::Channels';
# config
requires 'YAML';
requires 'Hash::Merge';
requires 'File::HomeDir';
# TAEB::Util
requires 'Sub::Exporter';
requires 'List::MoreUtils';
# pathfinding
requires 'Heap::Simple';
requires 'Heap::Simple::XS'; # why doesn't Heap::Simple do this for us...
# miscellaneous
requires 'Time::HiRes';
requires 'Data::Page';
requires 'Getopt::Long';
requires 'Devel::GlobalDestruction';
# NetHack-specific things
requires 'NetHack::Menu' => 0.06;
requires 'NetHack::FOV' => 0.01;
requires 'NetHack::Item' => 0.09;
requires 'NetHack::Monster::Spoiler' => 0.02;
my $has_nethack = can_run('nethack');
if (!$has_nethack) {
warn << '__NETHACK__';
******************************************************************
It appears that you do not have a "nethack" binary available. You will not be
able to use TAEB's Local interface until you install nethack.
Alternatively, use the Telnet interface for playing on public servers such as
nethack.alt.org. Be sure that the "server nethack" dependencies are satisfied.
******************************************************************
__NETHACK__
# Give them some time to read.
sleep 10;
}
features(
# optional modules that enhance TAEB's playing
'TAEB for server NetHack' => [
-default => !$has_nethack,
recommends('IO::Socket::Telnet::HalfDuplex'),
],
'TAEB for local NetHack' => [
-default => $has_nethack,
recommends('IO::Pty::HalfDuplex'),
],
'Legacy interface for TAEB on local NetHack' => [
-default => 0,
recommends('IO::Pty::Easy' => 0.05),
],
# debugging tools
'REPL on ~' => [
-default => 0,
recommends('Carp::REPL'),
],
'IRC debug interface' => [
-default => 0,
recommends('Bot::BasicBot'),
recommends('App::Nopaste'),
],
'Log errors (and eventually deaths) to Twitter' => [
-default => 0,
recommends('Log::Dispatch::Twitter'),
],
'Compress backed up logfiles' => [
-default => 1,
recommends('IO::Compress::Gzip'),
],
);
build_requires 'Test::More';
install_script 'bin/taeb';
tests('t/*.t t/*/*.t');
auto_install;
WriteAll;