ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/schmorpforge/genpage
(Generate patch)

Comparing cvsroot/schmorpforge/genpage (file contents):
Revision 1.47 by root, Mon Jul 20 04:46:42 2009 UTC vs.
Revision 1.69 by root, Mon Jun 21 21:56:05 2010 UTC

4 4
5mkdir "software.schmorp.de", 0755; 5mkdir "software.schmorp.de", 0755;
6mkdir "software.schmorp.de/pkg", 0755; 6mkdir "software.schmorp.de/pkg", 0755;
7mkdir "software.schmorp.de/img", 0755; 7mkdir "software.schmorp.de/img", 0755;
8system "rsync -av *.jpg software.schmorp.de/img/"; 8system "rsync -av *.jpg software.schmorp.de/img/";
9
10our %IRC = (
11 anyevent => ["irc.perl.org", "#anyevent", "http://mibbit.com/chat/#anyevent\@irc.perl.org"],
12 freenode => ["irc.freenode.org", "#schmorp", "http://webchat.freenode.net/?randomnick=1&channels=schmorp&prompt=1", ", users <tt>schmorp</tt> and <tt>elmex</tt>"],
13);
9 14
10sub hdr($$) { 15sub hdr($$) {
11 print <<EOF; 16 print <<EOF;
12<?xml version='1.0' encoding='utf-8'?> 17<?xml version='1.0' encoding='utf-8'?>
13<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 18<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
29 a:link { color: #00f; } 34 a:link { color: #00f; }
30 a:visited { color: #008; } 35 a:visited { color: #008; }
31 a:hover { color: #800; } 36 a:hover { color: #800; }
32 a:active { color: #f00; } 37 a:active { color: #f00; }
33 38
39 .back {
40 margin: 0;
41 font-size: 8pt;
42 }
43
44 h1 {
45 color: #034;
46 }
47 .short-desc {
48 font-weight: bold;
49 padding: 3px 3px 3px 8px;
50 margin: 1em 1px 1px 13px;
51 }
52 h2 {
53 color: #069;
54 font-weight: bold;
55 border: solid red;
56 border-width: 0 0 0 12px;
57 padding: 3px 3px 3px 8px;
58 margin: 1em 1px 1px 1px;
59 }
60 p {
61 padding: 3px 3px 3px 8px;
62 margin: 1em 1px 1px 13px;
63 }
64 h3 { color: #034; }
65 h4 { color: #034; }
66
34 img { display: block; } 67 img { display: block; }
35 68
69 .resources {
70 margin-left: 13px;
71 margin-right: 13px;
72 padding: 3px 3px 3px 8px;
73 border-spacing: 1px 2px;
74 }
75
76 .rr {
77 background: #eef;
78 padding: 1px 1em 1px 1ex;
79 }
80
81 tt.icon {
82 display: block;
83 font-family: "Andale Mono", "Lettergothic", monospace;
84 border: 1px solid #88f;
85 background: #ccf;
86 padding: 1px 1em 1px 1em;
87 margin-right: 0;
88 text-align: center;
89 width: 4en;
90 }
91
36 tt { font-family: "Andale Mono", "Lettergothic", monospace; } 92 tt { font-family: "Andale Mono", "Lettergothic", monospace; }
37 93
94 .overview {
95 margin-top: 1em;
96 margin-left: 13px;
97 margin-right: 13px;
98 padding: 3px 3px 3px 8px;
99 border-spacing: 1px 2px;
100 }
101
38 th { border-top: 1px dashed #aaa; vertical-align: top; text-align: left; padding: 0.2ex; } 102 .overview th { border-top: 1px dashed #aaa; vertical-align: top; text-align: left; padding: 0.2ex; }
39 td { border-top: 1px dashed #aaa; vertical-align: top; text-align: left; padding: 0.2ex; } 103 .overview td { border-top: 1px dashed #aaa; vertical-align: top; text-align: left; padding: 0.2ex; }
40 104
41 hr.footer { display: none; } 105 hr.footer { display: none; }
42 .footer { font-size: 8pt; border-top: 1px solid red; } 106 .footer { font-size: 8pt; border-top: 1px solid red; }
43 </style> 107 </style>
44</head> 108</head>
45<body> 109<body>
46<p class='back'><a href='/'>Schmorpforge Ta-Sa Software Repository</a></p> 110<p class='back'><a href='/'>Schmorpforge Ta-Sa Software Repository</a></p>
47<h1 class="$_[1]">$_[0]</h1> 111<h1 class="$_[1]">$_[0]</h1>
48<div style="text-align: center; float: right; margin-left: 1em; margin-bottom: 1em"> 112<div style="text-align: center; float: right; margin-left: 1em; margin-bottom: 1em">
113<!--
114 <a title="Mach mit!" href="http://www.piratenpartei.de/navigation/politik/unsere-ziele">
115 <img src="http://res.tst.eu/denke_selbst.gif" alt="Werde Pirat!" width="468" height="60" border="0" />
116 </a>
117 <br />
118-->
49 <a href="http://www.piratenpartei.de/navigation/politik/unsere-ziele"> 119 <a href="http://www.piratenpartei.de/navigation/politik/unsere-ziele">
50 <img src="http://www.piratenpartei-hessen.de/common/piratenbanner1" alt="Piratenpartei" border="0"/> 120 <img src="http://res.tst.eu/piraten1.png" alt="Piratenpartei" width="468" height="60" border="0" />
51 </a> 121 </a>
52 <br /> 122 <br />
53 <a href="http://www.deliantra.net/"> 123 <a href="http://www.deliantra.net/">
54 <img src="http://www.deliantra.net/images/deliantra.png" border="0" alt="Deliantra Free MMORPG" style="display: inline"/> 124 <img src="http://www.deliantra.net/images/deliantra.png" border="0" alt="Deliantra Free MMORPG" style="display: inline"/>
55 <br /> 125 <br />
86 $index{$name} = "<tr><th id='$name'><a href='pkg/$name.html'>$name</a></th><td>$short</td></tr>"; 156 $index{$name} = "<tr><th id='$name'><a href='pkg/$name.html'>$name</a></th><td>$short</td></tr>";
87 157
88 open STDOUT, ">", "software.schmorp.de/pkg/$name.html" 158 open STDOUT, ">", "software.schmorp.de/pkg/$name.html"
89 or die "software.schmorp.de/pkg/$name.html: $!"; 159 or die "software.schmorp.de/pkg/$name.html: $!";
90 160
91 if (grep /cpan/, @args) { 161 my $bg = (grep /cpan/, @args) ? "bg-perl" : "bg-ede";
92 hdr $name, "bg-perl";
93 } else {
94 hdr $name, "bg-ede"; 162 hdr $name, $bg;
95 }
96 163
97 print <<EOF; 164 print <<EOF;
165<h2>$name</h1>
98<p class='short-desc'>$short</p> 166<p class='short-desc'>$short</p>
99 167
100<h2>Blurb</h2> 168<h2>Blurb</h2>
101<p class='blurb'>$desc</p> 169<p class='blurb'>$desc</p>
102<h2>Resources</h2> 170<h2>Resources</h2>
103<ul> 171<table class='resources'>
104EOF 172EOF
105 if (grep /git/, @args) { 173 if (grep /git/, @args) {
106 print <<EOF; 174 print <<EOF;
107<li><a href='http://git.ta-sa.org/?p=$name.git;a=summary'>Browsable GIT repository '$name'</a></li> 175<tr><td><tt class="icon">GIT</tt></td><td class='rr'><a href='http://git.ta-sa.org/git/$name/'>Browsable GIT repository '$name'</a></li></tr>
108<li>Read-only GIT checkout:<br /> 176<tr><td><tt class="icon">GIT</tt></td><td class='rr'>Read-only GIT checkout: <tt>&#160;git-clone http://git.ta-sa.org/$name.git</tt>
109 <tt>&#160;git-clone http://git.ta-sa.org/$name.git</tt> 177</td></tr>
110</li> 178<!-- <tr><td><tt class="icon">CVS</tt></td><td class='rr'>Contributor CVS access (command requires CVS version &gt;= 1.12.11):<br />
111<li>(EXPERIMENTAL) contributor CVS access (command requires CVS versions (&gt;= 1.12.11)):<br />
112 <tt>cvs -d ":ext;CVS_SERVER=git-cvsserver:USER\@ruth.plan9.de/gitroot/$name.git" co -d $name master</tt> 179 <tt>cvs -d ":ext;CVS_SERVER=git-cvsserver:USER\@ruth.plan9.de/gitroot/$name.git" co -d $name master</tt>
113</li> 180</td></tr> -->
114EOF 181EOF
115 } else { 182 } else {
116 my $modules = $name; 183 my $modules = $name;
117 $modules = "$1" if grep /modules\((.*)\)/, @args; 184 $modules = "$1" if grep /modules\((.*)\)/, @args;
118 185
119 print <<EOF; 186 print <<EOF;
120<li><a href='http://cvs.schmorp.de/$name'>Browsable CVS module '$name'</a></li> 187<tr><td><tt class="icon">CVS</tt></td><td class='rr'><a href='http://cvs.schmorp.de/$name'>Browsable CVS module '$name'</a></td></tr>
121<li>Anonymous CVS checkout:<br /> 188<tr><td><tt class="icon">CVS</tt></td><td class='rr'>Anonymous CVS:
122 <tt>&#160;cvs -z3 -d :pserver:anonymous\@cvs.schmorp.de/schmorpforge co $modules</tt><p /> 189 <tt>&#160;cvs -z3 -d :pserver:anonymous\@cvs.schmorp.de/schmorpforge co $modules</tt>
123 190
124 <small> 191 <small>
125 192
126<!-- 193<!--
127 <p>The warning 194 <p>The warning
128 <b>cvs checkout: warning: cannot write to history file /schmorpforge/CVSROOT/history: Permission denied</b> 195 <b>cvs checkout: warning: cannot write to history file /schmorpforge/CVSROOT/history: Permission denied</b>
129 is expected and harmless, just ignore it. It simply means you have no write access to the repository. 196 is expected and harmless, just ignore it. It simply means you have no write access to the repository.
130 </p> 197 </p>
131--> 198-->
132 199
200<!--
133 <p>The CVS server moved again on 2008-02-21, you can use the following 201 <p>The CVS server moved again on 2008-02-21, you can use the following
134 (untested) snippet to update your CVS checkout. Run it in the top level 202 (untested) snippet to update your CVS checkout. Run it in the top level
135 checked out directory:</ br> 203 checked out directory:</ br>
136 204
137 <pre> 205 <pre>
138find . -name CVS | xargs -I% find % -name Root | 206find . -name CVS | xargs -I% find % -name Root |
139 xargs perl -i -pe 's%:pserver:anonymous\\\@cvs.schmorp.de:636/schmorpforge%:pserver:anonymous\\\@cvs.schmorp.de:/schmorpforge%'</pre> 207 xargs perl -i -pe 's%:pserver:anonymous\\\@cvs.schmorp.de:636/schmorpforge%:pserver:anonymous\\\@cvs.schmorp.de:/schmorpforge%'</pre>
140 </p> 208 </p>
209-->
141 210
142 </small> 211 </small>
143 212
144</li> 213</td></tr>
145EOF 214EOF
146 } 215 }
147 216
148 print "<li><a href='http://dist.schmorp.de/$name/'>File Releases</a></li>\n" 217 my @irc;
218
219 print "<tr><td><tt class='icon'>FILE</tt></td><td class='rr'><a href='http://dist.schmorp.de/$name/'>File Releases</a></td></tr>\n"
149 if grep /dist/, @args; 220 if grep /dist/, @args;
150 print "<li><a href='http://www.cpan.org/modules/by-authors/Marc_Lehmann/'>File Releases (CPAN)</a></li>\n" 221 print "<tr><td><tt class='icon'>CPAN</tt></td><td class='rr'><a href='http://www.cpan.org/modules/by-authors/Marc_Lehmann/'>File Releases (CPAN)</a></td></tr>\n"
151 if grep /cpan$/, @args; 222 if grep /cpan$/, @args;
152 print "<li><a href='http://www.cpan.org/modules/by-authors/id/E/EL/ELMEX/'>File Releases (CPAN)</a></li>\n" 223 print "<tr><td><tt class='icon'>CPAN</tt></td><td class='rr'><a href='http://www.cpan.org/modules/by-authors/id/E/EL/ELMEX/'>File Releases (CPAN)</a></td></tr>\n"
153 if grep /cpan-elmex/, @args; 224 if grep /cpan-elmex/, @args;
154 for (@args) { 225 for (@args) {
155 if (/list\((.*)\)/) { 226 if (/list\((.*?)\)/) {
156 print "<li><a href='http://lists.schmorp.de/mailman/listinfo/" . ($1 || $name) . "'>Mailing List '" . ($1 || $name) . "'</a></li>\n"; 227 print "<tr><td><tt class='icon'>LIST</tt></td><td class='rr'><a href='http://lists.schmorp.de/mailman/listinfo/" . ($1 || $name) . "'>Mailing List '" . ($1 || $name) . "'</a></td></tr>\n";
228 }
229 if (/irc\((.*?)\)/) {
230 push @irc, $1;
157 } 231 }
158 } 232 }
233 push @irc, "freenode" unless @irc;
234 for (@irc) {
235 my ($server, $channel, $url, $comment) = @{ $IRC{$_} or die };
236 print "<tr><td><tt class='icon'>IRC</tt></td><td class='rr'>Server <a href='$url'><tt><b>$server</b></tt>, channel <tt>$channel</tt></a>$comment <b>(say hi and <i>wait a few minutes or hours</i>)</b></td></tr>\n";
237 }
159 238
160 print "</ul>"; 239 print "</table>";
161 240
162 if (my @files = grep $_, map /(cvs-co|cvs-pod|git-pod|git-co)\((\S+)\)/ && [$1, $2], @args) { 241 if (my @files = grep $_, map /(cvs-co|cvs-pod|git-pod|git-co)\((\S+)\)/ && [$1, $2], @args) {
163 print "<h2>Additional Documents</h2><ul>"; 242 print "<h2>Additional Documents</h2><table class='resources'>";
164 243
165 for (@files) { 244 for (@files) {
166 my ($type, $arg) = @$_; 245 my ($type, $arg) = @$_;
167 246
168 if ($type eq "cvs-co") { 247 if ($type eq "cvs-co") {
169 print "<li><a href='http://cvs.schmorp.de/$name/$arg'>$arg</a></li>"; 248 print "<tr><td><tt class='icon'>FILE</tt></td><td class='rr'><a href='http://cvs.schmorp.de/$name/$arg'>$arg</a></td></tr>";
170 249
171 } elsif ($type eq "cvs-pod") { 250 } elsif ($type eq "cvs-pod") {
172 my ($file, $desc) = $arg =~ /(.*),(.*)/ ? ($1, $2) : ($arg, $arg); 251 my ($file, $desc) = $arg =~ /(.*),(.*)/ ? ($1, $2) : ($arg, $arg);
173 $desc ||= "<b>Main Manual Page</b>"; 252 $desc ||= "<b>Main Manual Page</b>";
174 print "<li><a href='http://pod.tst.eu/http://cvs.schmorp.de/$name/$file'>$desc</a></li>"; 253 print "<tr><td><tt class='icon'>POD</tt></td><td class='rr'><a href='http://pod.tst.eu/http://cvs.schmorp.de/$name/$file'>$desc</a></td></tr>";
175 254
176 } elsif ($type eq 'git-co') { 255 } elsif ($type eq 'git-co') {
177 print "<li><a href='http://git.ta-sa.org/$name/$arg'>$arg</a></li>"; 256 print "<tr><td><tt class='icon'>FILE</tt></td><td class='rr'><a href='http://git.ta-sa.org/$name/$arg'>$arg</a></td>";
178 257
179 } elsif ($type eq "git-pod") { 258 } elsif ($type eq "git-pod") {
180 my ($file, $desc) = $arg =~ /(.*),(.*)/ ? ($1, $2) : ($arg, $arg); 259 my ($file, $desc) = $arg =~ /(.*),(.*)/ ? ($1, $2) : ($arg, $arg);
181 $desc ||= "<b>Main Manual Page</b>"; 260 $desc ||= "<b>Main Manual Page</b>";
182 print "<li><a href='http://pod.tst.eu/http://git.ta-sa.org/$name/$file'>$desc</a></li>"; 261 print "<tr><td><tt class='icon'>POD</tt></td><td class='rr'><a href='http://pod.tst.eu/http://git.ta-sa.org/$name/$file'>$desc</a></td></tr>";
183 262
184 } 263 }
185 } 264 }
186 265
187 print "</ul>"; 266 print "</table>";
188 } 267 }
189 268
190 ftr; 269 ftr;
191} 270}
192 271
193open STDOUT, ">software.schmorp.de/index.html"; 272open STDOUT, ">software.schmorp.de/index.html";
194 273
195hdr "Package Index", "bg-bluete"; 274hdr "Project List", "bg-bluete";
196 275
197print <<EOF; 276print <<EOF;
198 277
278<h2>About</h2>
199<p>This page briefly documents the Schmorpforge Ta-Sa Software Repository and 279<p class='blurb'>This page briefly documents the Schmorpforge Ta-Sa Software Repository and
200lists all projects available here.</p> 280lists all projects available here.</p>
201 281
202<ul> 282<table class='resources'>
203<li>All CVS Repositories can be found <a href="http://cvs.schmorp.de/">here</a>.</li> 283<tr><td><tt class='icon'>CVS</tt></td><td class='rr'>All CVS modules can be browsed <a href="http://cvs.schmorp.de/">here</a></td></tr>
204<li>All GIT Repositories can be found <a href="http://git.ta-sa.org/">here</a>.</li> 284<tr><td><tt class='icon'>GIT</tt></td><td class='rr'>All GIT repositories can be found <a href="http://git.ta-sa.org/">here</a></td></tr>
205<li>File Releases can be found <a href="http://dist.schmorp.de/">here</a> or on CPAN (for Perl modules).</li> 285<tr><td><tt class='icon'>FILE</tt></td><td class='rr'>All file releases can be found <a href="http://dist.schmorp.de/">here</a> or on CPAN (for Perl modules)</td></tr>
206<li>All Mailinglists can be found <a href="http://lists.schmorp.de/mailman/listinfo">here</a>.</li> 286<tr><td><tt class='icon'>LIST</tt></td><td class='rr'>All mailinglists can be found <a href="http://lists.schmorp.de/mailman/listinfo">here</a></td></tr>
207<!--<li>The Wiki can be found <a href="http://wiki.schmorp.de/">here</a>.</li>--> 287<!--<tr><td><tt class='icon'>WIKI</tt></td><td class='rr'>The Wiki can be found <a href="http://wiki.schmorp.de/">here</a></td></tr>-->
208</ul> 288<tr><td><tt class='icon'>IRC</tt></td><td class='rr'>Server <a href='http://webchat.freenode.net/?randomnick=1&amp;channels=schmorp&amp;prompt=1'><tt><b>irc.freenode.net</b></tt>, channel <tt>#schmorp</tt></a>, users <tt>schmorp</tt> and <tt>elmex</tt> <b>(say hi and <i>wait a few minutes or hours</i>)</b><br/>Other project-specific IRC servers are listed on their respective project page.</td></tr>
209<p>Projects listed on this page:</p> 289EOF
290
291print <<EOF;
210<table> 292</table>
293
294<h2>Project List</h2>
295<table class='overview'>
211EOF 296EOF
212 297
213print $index{$_} for sort { (lc $a) cmp (lc $b) } keys %index; 298print $index{$_} for sort { (lc $a) cmp (lc $b) } keys %index;
214 299
215print "</table>"; 300print "</table>";
287 readline tab-completion to enter filenames. 372 readline tab-completion to enter filenames.
288 373
289 Again, its a dire hack and will not work with all programs. It does work 374 Again, its a dire hack and will not work with all programs. It does work
290 for gimp, firefox, gedit at least, though. 375 for gimp, firefox, gedit at least, though.
291 376
292Async-Interrupt cpan cvs-pod(Interrupt.pm,) cvs-co(Changes) list(anyevent) 377Async-Interrupt cpan cvs-pod(Interrupt.pm,) cvs-co(Changes) list(anyevent) irc(anyevent)
293 Allow C/XS libraries to interrupt perl asynchronously. 378 Allow C/XS libraries to interrupt perl asynchronously.
294 379
295 This is a module implementing a rarely-needed, very advanced technique 380 This is a module implementing a rarely-needed, very advanced technique
296 to interrupt a running perl interpreter from another thread, or similar, 381 to interrupt a running perl interpreter from another thread, or similar,
297 context, at very low overhead. 382 context, at very low overhead.
329 It could be used to write Knuddels clients, bots and even servers 414 It could be used to write Knuddels clients, bots and even servers
330 (although the latter doesn't make much sense, the protocol is rather 415 (although the latter doesn't make much sense, the protocol is rather
331 ugly. If you want to implement your own group communication server, use 416 ugly. If you want to implement your own group communication server, use
332 IRC instead). 417 IRC instead).
333 418
334AnyEvent-IRC cpan-elmex git-pod(lib/AnyEvent/IRC.pm,) git-co(Changes) git-co(samples/anyeventirccl) git-co(samples/anyeventirc) list(anyevent) 419AnyEvent-IRC cpan-elmex git-pod(lib/AnyEvent/IRC.pm,) git-co(Changes) git-co(samples/anyeventirccl) git-co(samples/anyeventirc) list(anyevent) irc(anyevent)
335 This module provides an alternative to the Net-IRC and Net-IRC2 420 This module provides an alternative to the Net-IRC and Net-IRC2
336 modules. Its design rationale is offering a 100% non-blocking 421 modules. Its design rationale is offering a 100% non-blocking
337 callback-based interface, RFC-compliant parsing and a lightweight 422 callback-based interface, RFC-compliant parsing and a lightweight
338 approach to modularity and reusability. 423 approach to modularity and reusability.
339 424
342 that are executed when a scope is being exited (or an object is destroyed). 427 that are executed when a scope is being exited (or an object is destroyed).
343 428
344 Much effort was invested into these guards behaving "sensibly" in the 429 Much effort was invested into these guards behaving "sensibly" in the
345 presence of thrown exceptions, errors and other adverse conditions, as 430 presence of thrown exceptions, errors and other adverse conditions, as
346 well as into good performance. 431 well as into good performance.
432
433common-sense cpan cvs-pod(sense.pm,) cvs-co(Changes)
434 This module implements some sane defaults for Perl programs, as defined
435 by two typical (or not so typical - use your common sense) specimens of
436 Perl coders.
347 437
348Net-IRC-Server cvs-pod(Net/IRC/Server.pm,) 438Net-IRC-Server cvs-pod(Net/IRC/Server.pm,)
349 This module provides a simple API for handling the IRC Protocol 439 This module provides a simple API for handling the IRC Protocol
350 aiming at implementing lightweight IRC-Servers. 440 aiming at implementing lightweight IRC-Servers.
351 441
456 A fork of the unmaintained xcb (x cut buffers) program implementing better i18n. 546 A fork of the unmaintained xcb (x cut buffers) program implementing better i18n.
457 547
458lmainit cvs-co(NEWS) 548lmainit cvs-co(NEWS)
459 A sysvinit replacement that can even be configured to be sysvinit-compliant. 549 A sysvinit replacement that can even be configured to be sysvinit-compliant.
460 550
461 See <a href="http://www.goof.com/pcg/marc/lmainit.html">its homepage</a> for more info. 551 See <a href="http://home.schmorp.de/marc/lmainit.html">its homepage</a> for more info.
462 552
463Algorithm-FEC cpan cvs-pod(FEC.pm,) cvs-co(README.fec) cvs-co(Changes) 553Algorithm-FEC cpan cvs-pod(FEC.pm,) cvs-co(README.fec) cvs-co(Changes)
464 Perl module implementing forward error correction using Vandermonde matrices 554 Perl module implementing forward error correction using Vandermonde matrices
465 555
466AnyEvent cpan cvs-pod(lib/AnyEvent.pm,) cvs-pod(lib/AnyEvent/Intro.pod,Introduction/Tutorial) cvs-co(Changes) cvs-pod(lib/AnyEvent/Util.pm,AnyEvent::Util) cvs-pod(lib/AnyEvent/Handle.pm,AnyEvent::Handle) cvs-pod(lib/AnyEvent/Socket.pm,AnyEvent::Socket) cvs-pod(lib/AnyEvent/DNS.pm,AnyEvent::DNS) cvs-pod(lib/AnyEvent/Impl/EV.pm,AnyEvent::Impl::EV) cvs-pod(lib/AnyEvent/Impl/Event.pm,AnyEvent::Impl::Event) cvs-pod(lib/AnyEvent/Impl/Glib.pm,AnyEvent::Impl::Glib) cvs-pod(lib/AnyEvent/Impl/Tk.pm,AnyEvent::Impl::Tk) cvs-pod(lib/AnyEvent/Impl/Perl.pm,AnyEvent::Impl::Perl) cvs-pod(lib/AnyEvent/Impl/Qt.pm,AnyEvent::Impl::Qt) cvs-pod(lib/AnyEvent/Impl/EventLib.pm,AnyEvent::Impl::EventLib) cvs-pod(lib/AnyEvent/Impl/IOAsync.pm,AnyEvent::Impl::IOAsync) cvs-pod(lib/AnyEvent/Impl/POE.pm,AnyEvent::Impl::POE) list(anyevent) 556AnyEvent cpan cvs-pod(lib/AnyEvent.pm,) cvs-pod(lib/AnyEvent/Intro.pod,Introduction/Tutorial) cvs-pod(lib/AE.pm,AE) cvs-co(Changes) cvs-pod(lib/AnyEvent/Util.pm,AnyEvent::Util) cvs-pod(lib/AnyEvent/Handle.pm,AnyEvent::Handle) cvs-pod(lib/AnyEvent/Socket.pm,AnyEvent::Socket) cvs-pod(lib/AnyEvent/DNS.pm,AnyEvent::DNS) cvs-pod(lib/AnyEvent/Impl/EV.pm,AnyEvent::Impl::EV) cvs-pod(lib/AnyEvent/Impl/Event.pm,AnyEvent::Impl::Event) cvs-pod(lib/AnyEvent/Impl/Glib.pm,AnyEvent::Impl::Glib) cvs-pod(lib/AnyEvent/Impl/Tk.pm,AnyEvent::Impl::Tk) cvs-pod(lib/AnyEvent/Impl/Perl.pm,AnyEvent::Impl::Perl) cvs-pod(lib/AnyEvent/Impl/Qt.pm,AnyEvent::Impl::Qt) cvs-pod(lib/AnyEvent/Impl/EventLib.pm,AnyEvent::Impl::EventLib) cvs-pod(lib/AnyEvent/Impl/Irssi.pm,AnyEvent::Impl::Irssi) cvs-pod(lib/AnyEvent/Impl/IOAsync.pm,AnyEvent::Impl::IOAsync) cvs-pod(lib/AnyEvent/Impl/POE.pm,AnyEvent::Impl::POE) list(anyevent) irc(anyevent)
467 This module offers a simple API for I/O, timer, signal, child process 557 This module offers a simple API for I/O, timer, signal, child process
468 and completion events, independent of a specific event loop. 558 and completion events, independent of a specific event loop.
469 559
470 <p>This module allows module authors to use those events internally 560 <p>This module allows module authors to use those events internally
471 without forcing users of the module to use a specific event loop, without 561 without forcing users of the module to use a specific event loop, without
472 adding noticable overhead. Currently supported event loops are EV, Event, 562 adding noticable overhead. Currently supported event loops are EV, Event,
473 Glib/Gtk2, Tk, Qt, Event::Lib, IO::Async and POE (and thus also WxWidgets 563 Glib/Gtk2, Tk, Qt, Event::Lib, Irssi, IO::Async and POE (and thus also
474 and Prima). It also comes with a very fast (see benchmarks in the main 564 WxWidgets and Prima). It also comes with a very fast (see benchmarks in
475 manual page) Pure Perl event loop and doesn't rely on XS, which ensures 565 the main manual page) Pure Perl event loop and doesn't rely on XS, which
476 that your program will always run even when no C-based event loop is 566 ensures that your program will always run even when no C-based event loop
477 available.</p> 567 is available.</p>
478 568
479 <p>In addition to the event core (which might be all you need), AnyEvent 569 <p>In addition to the event core (which might be all you need), AnyEvent
480 comes with an optional, fully asynchronous, pure-perl DNS resolver 570 comes with an optional, fully asynchronous, pure-perl DNS resolver
481 library supporting UDP, TCP and EDNS0, with many utility functions to 571 library supporting UDP, TCP and EDNS0, with many utility functions to
482 "just resolve" stuff without having to instantiate even a resolver object 572 "just resolve" stuff without having to instantiate even a resolver object
490 <p>Lastly, AnyEvent::Handle offers a powerful framework for asynchronous and 580 <p>Lastly, AnyEvent::Handle offers a powerful framework for asynchronous and
491 buffered protocol handling. You can push multiple read event handlers 581 buffered protocol handling. You can push multiple read event handlers
492 to parse your protocol and start TLS/SSL negotiation transparently (and 582 to parse your protocol and start TLS/SSL negotiation transparently (and
493 fully non-blocking) at any time, in both server and client mode.</p> 583 fully non-blocking) at any time, in both server and client mode.</p>
494 584
495AnyEvent-FastPing cpan cvs-pod(FastPing.pm,) list(anyevent) 585AnyEvent-FastPing cpan cvs-pod(FastPing.pm,) list(anyevent) irc(anyevent)
496 This module implements a very fast and relatively flexible 586 This module implements a very fast and relatively flexible
497 ping (ping as in icmp echo request). 587 ping (ping as in icmp echo request).
498 588
499 This module allows you to quickly send ipv4 and ipv6 pings at a defined 589 This module allows you to quickly send ipv4 and ipv6 pings at a defined
500 rate to whole address ranges. It is fully event-driven (doesn't block 590 rate to whole address ranges. It is fully event-driven (doesn't block
503 more address ranges, to which pings will be distributed according to a 593 more address ranges, to which pings will be distributed according to a
504 least-load principle. 594 least-load principle.
505 595
506 A command line utility (<tt>fastping</tt>) is included. 596 A command line utility (<tt>fastping</tt>) is included.
507 597
508AnyEvent-HTTP cpan cvs-pod(HTTP.pm,) cvs-co(Changes) list(anyevent) 598AnyEvent-HTTP cpan cvs-pod(HTTP.pm,) cvs-co(Changes) list(anyevent) irc(anyevent)
509 A simple and plain event based http and https client. 599 A simple and plain event based http and https client.
510 600
511 This module implements a simple, stateless and non-blocking HTTP 601 This module implements a simple, stateless and non-blocking HTTP
512 client. It supports GET, POST and other request methods, cookies and more, 602 client. It supports GET, POST and other request methods, cookies and more,
513 all on a very low level. It can follow redirects supports proxies and 603 all on a very low level. It can follow redirects supports proxies and
521 The caller is responsible for authentication management, cookies (if 611 The caller is responsible for authentication management, cookies (if
522 the simplistic implementation in this module doesn't suffice), referer 612 the simplistic implementation in this module doesn't suffice), referer
523 and other high-level protocol details for which this module offers only 613 and other high-level protocol details for which this module offers only
524 limited support. 614 limited support.
525 615
616AnyEvent-MP cpan cvs-pod(MP.pm,) cvs-pod(MP/Intro.pod,Introduction/Tutorial) cvs-co(Changes) list(anyevent) irc(anyevent)
617 This Perl module (-family) implements a simple message passing framework for Perl.
618
619 Despite its simplicity, you can securely message other processes running
620 on the same or other hosts.
621
622 For an introduction to this module family, see the Intro manual page.
623
624Coro-MP cpan cvs-pod(MP.pm,) cvs-co(Changes) list(anyevent) irc(anyevent)
625 This Perl module extends the AnyEvent::MP API with a thread-like/erlang-style API.
626
627 This module implements a thread-like API to AnyEvent::MP that is closer
628 to Erlang than the event-based AnyEvent::MP API. It integrates well into
629 AnyEvent::MP.
630
631 See the AnyEvent::MP module and tutorial for info about the concepts used
632 in AnyEvent::MP.
633
526AnyEvent-DBI cpan cvs-pod(DBI.pm,) cvs-co(Changes) list(anyevent) 634AnyEvent-DBI cpan cvs-pod(DBI.pm,) cvs-co(Changes) list(anyevent) irc(anyevent)
527 A relatively simple wrapper around DBI to make asynchronous 635 A relatively simple wrapper around DBI to make asynchronous
528 SQL requests. 636 SQL requests.
529 637
530 This module implements asynchronous DBI access my forking or executing 638 This module implements asynchronous DBI access my forking or executing
531 separate "DBI-Server" processes and sending them requests. 639 separate "DBI-Server" processes and sending them requests.
532 640
533 It means that you can run DBI requests in parallel to other tasks. 641 It means that you can run DBI requests in parallel to other tasks.
534 642
535AnyEvent-HTTPD cpan-elmex git-pod(lib/AnyEvent/HTTPD.pm,) git-co(Changes) list(anyevent) 643AnyEvent-HTTPD cpan-elmex git-pod(lib/AnyEvent/HTTPD.pm,) git-co(Changes) list(anyevent) irc(anyevent)
536 A simple and plain event based http web application server Perl module. 644 A simple and plain event based http web application server Perl module.
537 645
538 This is a very basic HTTP server that allows the user/programmer to install 646 This is a very basic HTTP server that allows the user/programmer to install
539 hooks for URL paths to generate the output. It uses AnyEvent to be easily 647 hooks for URL paths to generate the output. It uses AnyEvent to be easily
540 embeddable into other applications. The main objective was to make it 648 embeddable into other applications. The main objective was to make it
541 easier to make simple HTTP frontends in Perl for Perl programs and Perl modules. 649 easier to make simple HTTP frontends in Perl for Perl programs and Perl modules.
542 650
651AnyEvent-Feed cpan-elmex git-pod(lib/AnyEvent/Feed.pm,) git-co(Changes) list(anyevent) irc(anyevent)
652 A RSS/Atom Feed aggregator.
653
654 This module uses AnyEvent::HTTP and XML::Feed to fetch and parse RSS and Atom
655 feeds. It provides aggregation (detecting of new entries) to provide an easy
656 interface for simple feed readers.
657
658AnyEvent-Twitter cpan-elmex git-pod(lib/AnyEvent/Twitter.pm,) git-co(Changes) list(anyevent) irc(anyevent)
659 Implementation of the Twitter API for AnyEvent.
660
661 Provides a simple non-blocking API to access information (aka tweets) provided
662 by <a href="http://www.twitter.com">Twitter</a>.
663
543AnyEvent-IGS cpan-elmex git-pod(lib/AnyEvent/IGS.pm,) git-co(Changes) list(anyevent) 664AnyEvent-IGS cpan-elmex git-pod(lib/AnyEvent/IGS.pm,) git-co(Changes) list(anyevent) irc(anyevent)
544 A Perl module that interfaces to the International Go Server. 665 A Perl module that interfaces to the International Go Server.
545 666
546 This module is an Anyevent-based interface to the International Go Server 667 This module is an Anyevent-based interface to the International Go Server
547 protocol. 668 protocol.
548 669
549AnyEvent-EditText cpan-elmex git-pod(lib/AnyEvent/EditText.pm,) git-co(Changes) list(anyevent) 670AnyEvent-EditText cpan-elmex git-pod(lib/AnyEvent/EditText.pm,) git-co(Changes) list(anyevent) irc(anyevent)
550 A Perl module which allows editing any text via an editor in a separate process. 671 A Perl module which allows editing any text via an editor in a separate process.
551 672
552 A utility Perl module that will start a terminal/editor for you and will 673 A utility Perl module that will start a terminal/editor for you and will
553 wait non-blocking for you to finish editing that file. Very useful to embed 674 wait non-blocking for you to finish editing that file. Very useful to embed
554 content edititing in event based programs that have a AnyEvent compatible 675 content edititing in event based programs that have a AnyEvent compatible
558 A Perl module that implements C++ STL-like binary heap operations. 679 A Perl module that implements C++ STL-like binary heap operations.
559 680
560Audio-Play-MPG123 cpan cvs-pod(MPG123.pm,) cvs-co(Changes) 681Audio-Play-MPG123 cpan cvs-pod(MPG123.pm,) cvs-co(Changes)
561 A Perl module implementing an interface to mpg123. 682 A Perl module implementing an interface to mpg123.
562 683
684BK git-pod(lib/BK.pm,) git-pod(lib/BK/News.pod,News) git-co(Changes) git-pod(lib/BK/Client.pm,BK::Client) git-pod(lib/BK/Backend.pm,BK::Backend)
685 Bummskraut is a distributed chat/messaging client framework written in Perl
686 using <a href="/pkg/AnyEvent-MP.html">AnyEvent::MP</a>.
687
688 For more documentation please consult the main manpage (see below). If you
689 want to check on the latest news proceed to the news or changelog (see also
690 below).
691
563Compress-LZV1 cpan cvs-pod(LZV1.pm,) cvs-co(Changes) 692Compress-LZV1 cpan cvs-pod(LZV1.pm,) cvs-co(Changes)
564 A Perl module implementing the LZV1 compression algorithm. See 693 A Perl module implementing the LZV1 compression algorithm. See
565 <tt>Compress::LZF</tt> for a better algorithm and module. 694 <tt>Compress::LZF</tt> for a better algorithm and module.
695
696Compress-LZF cpan cvs-pod(LZF.pm,) cvs-co(Changes)
697 A Perl module implementing the LZF compression algorithm, and simple
698 to use data structure serialising.
566 699
567Convert-CD cvs-pod(lib/Convert/CD.pm,) cvs-pod(bin/cvtiso,cvtiso) cvs-co(doc/) cvs-co(Changes) 700Convert-CD cvs-pod(lib/Convert/CD.pm,) cvs-pod(bin/cvtiso,cvtiso) cvs-co(doc/) cvs-co(Changes)
568 Unfinished Perl project implementing CD image formats. Extracting ISO images 701 Unfinished Perl project implementing CD image formats. Extracting ISO images
569 already works. 702 already works.
570 703
576 allows easy decoding of multipart mime, uuencode and a whole lot of 709 allows easy decoding of multipart mime, uuencode and a whole lot of
577 differently encoded messages. You basically throw files at it, and 710 differently encoded messages. You basically throw files at it, and
578 it extracts the files in them. This module is used by the popular <a 711 it extracts the files in them. This module is used by the popular <a
579 href="www.amavis.org">amavis virus scanner</a>. 712 href="www.amavis.org">amavis virus scanner</a>.
580 713
581Coro cpan cvs-co(Changes) cvs-pod(Coro.pm,) cvs-pod(Coro/AIO.pm,Coro::AIO) cvs-pod(Coro/AnyEvent.pm,Coro::AnyEvent) cvs-pod(Coro/BDB.pm,Coro::BDB) cvs-pod(Coro/Channel.pm,Coro::Channel) cvs-pod(Coro/Debug.pm,Coro::Debug) cvs-pod(Coro/EV.pm,Coro::EV) cvs-pod(Coro/Event.pm,Coro::Event) cvs-pod(Coro/Handle.pm,Coro::Handle) cvs-pod(Coro/LWP.pm,Coro::LWP) cvs-pod(Coro/MakeMaker.pm,Coro::MakeMaker) cvs-pod(Coro/RWLock.pm,Coro::RWLock) cvs-pod(Coro/Select.pm,Coro::Select) cvs-pod(Coro/Semaphore.pm,Coro::Semaphore) cvs-pod(Coro/SemaphoreSet.pm,Coro::SemaphoreSet) cvs-pod(Coro/Signal.pm,Coro::Signal) cvs-pod(Coro/Socket.pm,Coro::Socket) cvs-pod(Coro/Specific.pm,Coro::Specific) cvs-pod(Coro/State.pm,Coro::State) cvs-pod(Coro/Storable.pm,Coro::Storable) cvs-pod(Coro/Timer.pm,Coro::Timer) cvs-pod(Coro/Util.pm,Coro::Util) list(anyevent) 714Coro cpan cvs-co(Changes) cvs-pod(Coro.pm,) cvs-pod(Coro/AIO.pm,Coro::AIO) cvs-pod(Coro/AnyEvent.pm,Coro::AnyEvent) cvs-pod(Coro/BDB.pm,Coro::BDB) cvs-pod(Coro/Channel.pm,Coro::Channel) cvs-pod(Coro/Debug.pm,Coro::Debug) cvs-pod(Coro/EV.pm,Coro::EV) cvs-pod(Coro/Event.pm,Coro::Event) cvs-pod(Coro/Handle.pm,Coro::Handle) cvs-pod(Coro/LWP.pm,Coro::LWP) cvs-pod(Coro/MakeMaker.pm,Coro::MakeMaker) cvs-pod(Coro/RWLock.pm,Coro::RWLock) cvs-pod(Coro/Select.pm,Coro::Select) cvs-pod(Coro/Semaphore.pm,Coro::Semaphore) cvs-pod(Coro/SemaphoreSet.pm,Coro::SemaphoreSet) cvs-pod(Coro/Signal.pm,Coro::Signal) cvs-pod(Coro/Socket.pm,Coro::Socket) cvs-pod(Coro/Specific.pm,Coro::Specific) cvs-pod(Coro/State.pm,Coro::State) cvs-pod(Coro/Storable.pm,Coro::Storable) cvs-pod(Coro/Timer.pm,Coro::Timer) cvs-pod(Coro/Util.pm,Coro::Util) list(anyevent) irc(anyevent)
582 A large Perl module family that implements cooperative multitasking in 715 A large Perl module family that implements cooperative multitasking in
583 Perl. It supports filehandle and event abstraction and also implements 716 Perl. It supports filehandle and event abstraction and also implements
584 continuations as well as the necessary directives to implement a slightly 717 continuations as well as the necessary directives to implement a slightly
585 limited call/cc in Perl. 718 limited call/cc in Perl.
586 719
741 874
742 This Perl module represents a Go game. It can check for valid moves, 875 This Perl module represents a Go game. It can check for valid moves,
743 capture stones, stores move history and can represent a variety of 876 capture stones, stores move history and can represent a variety of
744 additional annotations (circles, labels, grayed-out stones etc.). 877 additional annotations (circles, labels, grayed-out stones etc.).
745 878
879Games-Sokoban cpan cvs-pod(Sokoban.pm,) cvs-co(Changes)
880 A perl module to load/transform/save sokoban levels in various formats.
881
882 Supports xsb (text), rle, sokevo and a small "binpack" format for input and
883 output and can normalise levels as well as calculate unique IDs.
884
746Gtk2-GoBoard cpan cvs-pod(GoBoard.pm,) cvs-co(Changes) 885Gtk2-GoBoard cpan cvs-pod(GoBoard.pm,) cvs-co(Changes)
747 A Perl module implementing a go board widget. 886 A Perl module implementing a go board widget.
748 887
749 This Perl module implements a beautiful go board (see <a 888 This Perl module implements a beautiful go board (see <a
750 href="http://data.plan9.de/kgsuemel.jpg">example</a>), implemented as a 889 href="http://data.plan9.de/kgsuemel.jpg">example</a>), implemented as a
820 transfers (normal thttpd has problems with this). 959 transfers (normal thttpd has problems with this).
821 960
822wvsniff 961wvsniff
823 Undocumented but nicely working wavelan sniffer that I wrote for use 962 Undocumented but nicely working wavelan sniffer that I wrote for use
824 with my cisco aironet card. If you get it working, praise yourself. 963 with my cisco aironet card. If you get it working, praise yourself.
825
826ermyth cvs-pod(doc/poddoc/documentation.pod) cvs-co(Changes)
827 This is a fork of Atheme IRC Services.
828
829 Ermyth IRC Services is a set of Services for IRC networks that allows
830 users to manage their channels in a secure and efficient way and
831 allows operators to manage various things about their networks.
832 Ermyth has been ported to C++ and goes its way using modern concepts
833 and the object oriented paradigm.
834 964
835dhcpping cvs-pod(dhcping.pod,) 965dhcpping cvs-pod(dhcping.pod,)
836 A version of dhcpping enhanced by <a href="mailto:marco@nethype.de">Marco Maisenhelder</a> 966 A version of dhcpping enhanced by <a href="mailto:marco@nethype.de">Marco Maisenhelder</a>
837 to support passing dhcp options. Intended to test dhcp server implementations. 967 to support passing dhcp options. Intended to test dhcp server implementations.
838 968
948 1078
949 <p>lsys is a full-featured program that understands most of the syntax 1079 <p>lsys is a full-featured program that understands most of the syntax
950 of the original l-systems language, which is far more complex and 1080 of the original l-systems language, which is far more complex and
951 powerful than most available l-system interpreters.</p> 1081 powerful than most available l-system interpreters.</p>
952 1082
953 <p>See <a href="http://www.goof.com/pcg/marc/lsys.html">the original homepage</a> 1083 <p>See <a href="http://home.schmorp.de/marc/lsys.html">the original homepage</a>
954 for more explanations and some images. 1084 for more explanations and some images.
1085
1086ermyth cvs-pod(doc/poddoc/documentation.pod) cvs-co(Changes)
1087 This is a fork of Atheme IRC Services.
1088
1089 Ermyth IRC Services is a set of Services for IRC networks that allows
1090 users to manage their channels in a secure and efficient way and
1091 allows operators to manage various things about their networks.
1092 Ermyth has been ported to C++ and goes its way using modern concepts
1093 and the object oriented paradigm.
1094

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines