… | |
… | |
95 | |
95 | |
96 | <h2>Blurb</h2> |
96 | <h2>Blurb</h2> |
97 | <p class='blurb'>$desc</p> |
97 | <p class='blurb'>$desc</p> |
98 | <h2>Availability</h2> |
98 | <h2>Availability</h2> |
99 | <ul> |
99 | <ul> |
|
|
100 | EOF |
|
|
101 | if (grep /git/, @args) { |
|
|
102 | print <<EOF; |
|
|
103 | <li><a href='http://git.ta-sa.org/?p=$name.git;a=summary'>Browse GIT repository '$name'</a></li> |
|
|
104 | <li>Read-only GIT checkout:<br /> |
|
|
105 | <tt> git-clone http://git.ta-sa.org/$name.git</tt> |
|
|
106 | </li> |
|
|
107 | EOF |
|
|
108 | } else { |
|
|
109 | my $modules = $name; |
|
|
110 | $modules = "$1" if grep /modules\((.*)\)/, @args; |
|
|
111 | |
|
|
112 | print <<EOF; |
100 | <li><a href='http://cvs.schmorp.de/$name'>Browse CVS module '$name'</a></li> |
113 | <li><a href='http://cvs.schmorp.de/$name'>Browse CVS module '$name'</a></li> |
101 | EOF |
|
|
102 | |
|
|
103 | my $modules = $name; |
|
|
104 | $modules = "$1" if grep /modules\((.*)\)/, @args; |
|
|
105 | |
|
|
106 | print <<EOF; |
|
|
107 | <li>Anonymous CVS checkout:<br /> |
114 | <li>Anonymous CVS checkout:<br /> |
108 | <tt> cvs -z3 -d :pserver:anonymous\@cvs.schmorp.de/schmorpforge co $modules</tt><p /> |
115 | <tt> cvs -z3 -d :pserver:anonymous\@cvs.schmorp.de/schmorpforge co $modules</tt><p /> |
109 | |
116 | |
110 | <small> |
117 | <small> |
111 | |
118 | |
… | |
… | |
125 | |
132 | |
126 | </small> |
133 | </small> |
127 | |
134 | |
128 | </li> |
135 | </li> |
129 | EOF |
136 | EOF |
|
|
137 | } |
130 | |
138 | |
131 | print "<li><a href='http://dist.schmorp.de/$name/'>File Releases</a></li>\n" |
139 | print "<li><a href='http://dist.schmorp.de/$name/'>File Releases</a></li>\n" |
132 | if grep /dist/, @args; |
140 | if grep /dist/, @args; |
133 | print "<li><a href='http://www.cpan.org/modules/by-authors/Marc_Lehmann/'>File Releases (CPAN)</a></li>\n" |
141 | print "<li><a href='http://www.cpan.org/modules/by-authors/Marc_Lehmann/'>File Releases (CPAN)</a></li>\n" |
134 | if grep /cpan/, @args; |
142 | if grep /cpan$/, @args; |
|
|
143 | print "<li><a href='http://www.cpan.org/modules/by-authors/id/E/EL/ELMEX/'>File Releases (CPAN)</a></li>\n" |
|
|
144 | if grep /cpan-elmex/, @args; |
135 | for (@args) { |
145 | for (@args) { |
136 | print "<li><a href='http://lists.schmorp.de/mailman/listinfo/" . ($1 || $name) . "'>Mailing List '" . ($1 || $name) . "'</a></li>\n" |
146 | print "<li><a href='http://lists.schmorp.de/mailman/listinfo/" . ($1 || $name) . "'>Mailing List '" . ($1 || $name) . "'</a></li>\n" |
137 | if /list\((.*)\)/; |
147 | if /list\((.*)\)/; |
138 | } |
148 | } |
139 | |
149 | |
140 | print "</ul>"; |
150 | print "</ul>"; |
141 | |
151 | |
142 | if (my @files = grep $_, map /(cvs-co|cvs-pod)\((\S+)\)/ && [$1, $2], @args) { |
152 | if (my @files = grep $_, map /(cvs-co|cvs-pod|git-pod|git-co)\((\S+)\)/ && [$1, $2], @args) { |
143 | print "<h2>Additional Documents</h2><ul>"; |
153 | print "<h2>Additional Documents</h2><ul>"; |
144 | |
154 | |
145 | for (@files) { |
155 | for (@files) { |
146 | my ($type, $arg) = @$_; |
156 | my ($type, $arg) = @$_; |
147 | |
157 | |
148 | if ($type eq "cvs-co") { |
158 | if ($type eq "cvs-co") { |
149 | print "<li><a href='http://cvs.schmorp.de/$name/$arg'>$arg</a></li>"; |
159 | print "<li><a href='http://cvs.schmorp.de/$name/$arg'>$arg</a></li>"; |
|
|
160 | |
150 | } elsif ($type eq "cvs-pod") { |
161 | } elsif ($type eq "cvs-pod") { |
151 | my ($file, $desc) = $arg =~ /(.*),(.*)/ ? ($1, $2) : ($arg, $arg); |
162 | my ($file, $desc) = $arg =~ /(.*),(.*)/ ? ($1, $2) : ($arg, $arg); |
152 | $desc ||= "<b>Main Manual Page</b>"; |
163 | $desc ||= "<b>Main Manual Page</b>"; |
153 | print "<li><a href='http://pod.tst.eu/http://cvs.schmorp.de/$name/$file'>$desc</a></li>"; |
164 | print "<li><a href='http://pod.tst.eu/http://cvs.schmorp.de/$name/$file'>$desc</a></li>"; |
|
|
165 | |
|
|
166 | } elsif ($type eq 'git-co') { |
|
|
167 | print "<li><a href='http://git.ta-sa.org/$name/$arg'>$arg</a></li>"; |
|
|
168 | |
|
|
169 | } elsif ($type eq "git-pod") { |
|
|
170 | my ($file, $desc) = $arg =~ /(.*),(.*)/ ? ($1, $2) : ($arg, $arg); |
|
|
171 | $desc ||= "<b>Main Manual Page</b>"; |
|
|
172 | print "<li><a href='http://pod.tst.eu/http://git.ta-sa.org/$name/$file'>$desc</a></li>"; |
|
|
173 | |
154 | } |
174 | } |
155 | } |
175 | } |
156 | |
176 | |
157 | print "</ul>"; |
177 | print "</ul>"; |
158 | } |
178 | } |
… | |
… | |
292 | It could be used to write Knuddels clients, bots and even servers |
312 | It could be used to write Knuddels clients, bots and even servers |
293 | (although the latter doesn't make much sense, the protocol is rather |
313 | (although the latter doesn't make much sense, the protocol is rather |
294 | ugly. If you want to implement your own group communication server, use |
314 | ugly. If you want to implement your own group communication server, use |
295 | IRC instead). |
315 | IRC instead). |
296 | |
316 | |
297 | Net-IRC3 dist cvs-pod(lib/Net/IRC3.pm,) cvs-co(Changes) cvs-co(samples/netirc3cl) cvs-co(samples/netirc3) |
317 | Net-IRC3 cpan-elmex cvs-pod(lib/Net/IRC3.pm,) cvs-co(Changes) cvs-co(samples/netirc3cl) cvs-co(samples/netirc3) |
298 | This module provides an alternative to the Net-IRC and Net-IRC2 |
318 | This module provides an alternative to the Net-IRC and Net-IRC2 |
299 | modules. Its design rationale is offfering a 100% non-blocking |
319 | modules. Its design rationale is offfering a 100% non-blocking |
300 | callback-based interface, RFC-compliant parsing and a lightweight |
320 | callback-based interface, RFC-compliant parsing and a lightweight |
301 | approach to modularity and reusability. |
321 | approach to modularity and reusability. |
302 | |
322 | |
… | |
… | |
674 | |
694 | |
675 | dhcpping cvs-pod(dhcping.pod,) |
695 | dhcpping cvs-pod(dhcping.pod,) |
676 | A version of dhcpping enhanced by <a href="mailto:marco@nethype.de">Marco Maisenhelder</a> |
696 | A version of dhcpping enhanced by <a href="mailto:marco@nethype.de">Marco Maisenhelder</a> |
677 | to support passing dhcp options. Intended to test dhcp server implementations. |
697 | to support passing dhcp options. Intended to test dhcp server implementations. |
678 | |
698 | |
679 | AnyEvent-DNS cpan git-co(AnyEvent-DNS.git/Changes) |
699 | AnyEvent-DNS cpan-elmex git-pod(lib/AnyEvent/DNS.pm,) git-co(Changes) |
680 | A non-blocking DNS resolver with AnyEvent using Net::DNS. |
700 | A non-blocking DNS resolver with AnyEvent using Net::DNS. |
681 | |
701 | |
682 | This Perl module is a simple wrapper around Net::DNS, which provides |
702 | This Perl module is a simple wrapper around Net::DNS, which provides |
683 | a non-blocking interface to make DNS queries with Net::DNS. |
703 | a non-blocking interface to make DNS queries with Net::DNS. |
684 | |
704 | |
685 | AnyEvent-HTTPD cpan git-co(AnyEvent-HTTPD.git/Changes) |
705 | AnyEvent-HTTPD cpan-elmex git-pod(lib/AnyEvent/HTTPD.pm,) git-co(Changes) |
686 | A simple and plain event based http web application server Perl module. |
706 | A simple and plain event based http web application server Perl module. |
687 | |
707 | |
688 | This is a very basic HTTP server that allows the user/programmer to install |
708 | This is a very basic HTTP server that allows the user/programmer to install |
689 | hooks for URL paths to generate the output. It uses AnyEvent to be easily |
709 | hooks for URL paths to generate the output. It uses AnyEvent to be easily |
690 | embeddable into other applications. The main objective was to make it |
710 | embeddable into other applications. The main objective was to make it |
691 | easier to make simple HTTP frontends in Perl for Perl programs and Perl modules. |
711 | easier to make simple HTTP frontends in Perl for Perl programs and Perl modules. |
692 | |
712 | |
693 | Object-Event cpan git-co(Object-Event.git/Changes) |
713 | Object-Event cpan-elmex git-pod(lib/Object/Event.pm,) git-co(Changes) |
694 | A simple event callback API for Perl. |
714 | A simple event callback API for Perl. |
695 | |
715 | |
696 | This is just a very simple event callback registration and call API |
716 | This is just a very simple event callback registration and call API |
697 | which new Perl classes can inherit. It's mainly used by Net::XMPP2. |
717 | which new Perl classes can inherit. It's mainly used by Net::XMPP2. |
698 | |
718 | |
699 | Text-Edit cpan git-co(Text-Edit.git/Changes) |
719 | Text-Edit cpan-elmex git-pod(lib/Text/Edit.pm,) git-co(Text-Edit.git/Changes) |
700 | A Perl module which allows editing any text via an editor in a seperate process. |
720 | A Perl module which allows editing any text via an editor in a seperate process. |
701 | |
721 | |
702 | A utility Perl module that will start a terminal/editor for you and will |
722 | A utility Perl module that will start a terminal/editor for you and will |
703 | wait non-blocking for you to finish editing that file. Very useful to embed |
723 | wait non-blocking for you to finish editing that file. Very useful to embed |
704 | content edititing in event based programs that have a AnyEvent compatible |
724 | content edititing in event based programs that have a AnyEvent compatible |