1 |
#!/usr/bin/perl |
2 |
## |
3 |
## psh -- Perl Shell |
4 |
## |
5 |
## Opens a Login-Shell/Terminal and sends typed commands either |
6 |
## to its Core or to a certain handler via a Connector. |
7 |
## |
8 |
## Core |
9 |
## The core is used both in "Perl Shell" (psh.pl) |
10 |
## and "Perl Shell Daemon" (pshd.pl) |
11 |
## |
12 |
## Connector |
13 |
## It can use various Connectors |
14 |
## to recieve data (LocalFile, TcpHttp, TcpRpcXml). |
15 |
## |
16 |
## Login-Shell |
17 |
## psh spawns a "Login-Shell" after start. It's Terminal sends |
18 |
## commands to a Connector or directly to the core. |
19 |
## |
20 |
## psh/pshd relies on POE to by asynchronous, it won't work without it! |
21 |
## |
22 |
## You will also need some POE-Components which may not be |
23 |
## available on CPAN and a bunch of "standard" Perl-Modules you |
24 |
## can download from there. Some POE versions on CPAN seem to |
25 |
## be not quite up-to-date sometimes, so i tried to include all needed |
26 |
## Perl-Modules for linux/win32 in '../perl-libs'. |
27 |
## |
28 |
## |
29 |
## $Id$ |
30 |
## |
31 |
## $Log$ |
32 |
## |
33 |
## |
34 |
|
35 |
use strict; |
36 |
use warnings; |
37 |
|
38 |
BEGIN { |
39 |
sub RUNNING_IN_HELL () { $^O eq 'MSWin32' } |
40 |
if (RUNNING_IN_HELL()) { |
41 |
push @INC, '../perl-libs/lib_win32'; |
42 |
} else { |
43 |
push @INC, '../perl-libs/lib_linux'; |
44 |
} |
45 |
push @INC, '../perl-libs/lib_poe'; |
46 |
} |
47 |
|
48 |
use lib 'lib'; |
49 |
use MJAM; |
50 |
use POE; |
51 |
|
52 |
MJAM::Command::Core::start('cmdcore'); |
53 |
|
54 |
# start a core-shell-console |
55 |
#$poe_kernel->post( cmdcore => docmd => 'tell console start core-shell'); |
56 |
|
57 |
# start a login-shell-console |
58 |
$poe_kernel->post( cmdcore => docmd => 'tell console start login-shell'); |
59 |
|
60 |
$poe_kernel->run(); |