| version 1.1, 2002/06/26 12:00:49 |
version 1.2, 2003/04/17 23:59:47 |
|
|
| .\" Process this file with groff -man -Tascii ep.1 |
.TH "ep" "1" "18th April 2003" "ep 1.0pre4" "ep 1.0pre4" |
| .TH EP 1 "Apr, 2001" |
.BY "Ondrej Jombik" |
| .SH NAME |
.SH NAME |
| ep \- Extended Pipelining |
ep \- extended pipelining |
| .SH SYNOPSIS |
.SH SYNOPSIS |
| .PP |
.PP |
| ep [options] [module_list] |
ep [ GLOBAL OPTIONS -- ] [ PROCESSES OPTIONS ] |
| .SH DESCRIPTION |
.SH DESCRIPTION |
| .B Ep |
.B ep |
| is a pipeline connector. For most of linux user there was a time they wanted |
is a pipeline connector. For most of UNIX user there was a time they wanted to |
| to bend the pipe (ie. make a bidirectional pipe) which could render many |
bend the pipe (ie. make a bidirectional pipe) which could render many problems |
| problems to a simple tasks of creating modules. |
to a simple tasks of creating modules. |
| |
|
| .P |
|
| .B Ep |
|
| is mostly used for creating a communication tree |
|
| between several programs which communicate trhough STDIN, STDOUT and STDERR |
|
| pipelines. |
|
| .B EP |
|
| Supports cyclic pipelining (A -> B, B -> A) thus standing for a powerful |
|
| tool for creating script-based modular projects. |
|
| .B Ep |
|
| is a very cool program : -))) |
|
| .P |
.P |
| |
.B ep |
| .SH OPTIONS |
is mostly used for creating a communication tree between several programs which |
| Remember that options set in the command line overload the |
communicate trhough STDIN, STDOUT and STDERR pipelines. |
| ones in the config file. Most switches and options can be |
.B ep |
| abbreviated to a single letter (C programmers will love it ! :-)) |
supports cyclic pipelining (A -> B, B -> A) between processes thus standing for |
| .TP |
a powerful tool for creating script-based modular projects. |
| \f3-max-connections \f2<max>\f1 |
.SH GLOBAL OPTIONS |
| Maximum number of concurrent connections. |
|
| (default: 10) |
|
| |
|
| .TP |
.TP |
| \f3--version\f1 |
\f3-h\f1, \f3--help\f1 |
| Print the |
|
| .I ep |
|
| version number and exit. |
|
| |
|
| .TP |
|
| \f3--help\f1 |
|
| Print a help screen. |
Print a help screen. |
| |
|
| .SH FILES |
|
| .TP |
.TP |
| .IP "~/.ep/.ep.cfg" |
\f3-q\f1, \f3--quiet\f1 |
| Per-user configfile, created by |
Force quiet mode. |
| .B ep. |
|
| |
|
| .SH EXAMPLES |
|
| .PP |
|
| Here is a simple example how to create simple pop3 |
|
| mails fetcher (you will have |
|
| to write the "my_pop3_client.sh" file to try this - it will 'simulate' |
|
| humans presence at the other end of the telnet connection - ie. will |
|
| type "USER jones", "PASS mysecretpassword" and other POP3 |
|
| commands as if YOU typed them) |
|
| .PP |
|
| ep |
|
| -input 0in1out -output 2input -errput 0errput telnet emails.com 110 -- |
|
| -input 1output -output 0out1input -errput 0errput ./my_pop3_client.sh |
|
| .PP |
|
| Now lets try something more useful - lets create 'pseudo-SSL' |
|
| (we will use abbrevs. to save space - you will soon get on it) |
|
| Assume we have the 'encoder.sh', 'decoder.sh', 'logger.sh' files |
|
| .PP |
|
| ep |
|
| -i 0i -o 2o -e 0e4i ./encoder.sh -- |
|
| -i 1o -o 3o -e 0e4i telnet my.secret.org 22 -- |
|
| -i 2o -o 4o -e 0e4i ./decoder.sh -- |
|
| -i 0i1o2o3o -o 0o1i2i3i -e 0e ./logger.sh |
|
| .P |
|
| Now lets take closer look at this scheme: |
|
| ep represents the user - the output goes to the screen, the input is |
|
| taken from keyboard. |
|
| The shortcuts are : |
|
| .TP |
|
| 0 -> EP (user) |
|
| .TP |
.TP |
| 1 -> encoder |
\f3-v\f1, \f3--verbose\f1 |
| |
Enable verbose mode. More \f3-v\f1 means more verbose. |
| .TP |
.TP |
| 2 -> telnet |
\f3-f\f1, \f3--config-file\f1 \f2<config-filename>\f1 |
| |
Load user defined configuration file. |
| .TP |
.TP |
| 3 -> decoder |
\f3--disable-global-config\f1 |
| |
Disable global configuration file loading. |
| |
.TP |
| |
\f3--disable-user-config\f1 |
| |
Disable user configuration file loading. |
| |
.SH PROCESSES OPTIONS |
| |
Processes are specified on command line after global options. Each process can |
| |
be configured by |
| |
.B ep |
| |
processes options. After these options process command to run has to be |
| |
defined. At the end, there is a separator "--" and the next process |
| |
configuration can begin. |
| |
.P |
| |
[ [ [ \f2PROCS_1\f1 \f2cmd_1\f1 ] \f2--\f1 \f2PROCS_2\f1 \f2cmd_2\f1 ] ... ] |
| |
.P |
| |
\f2PROCS_n\f1 are options of particular process, \f2cmd_2\f1 is command to run |
| |
a process. |
| .TP |
.TP |
| 4 -> logger |
\f3-i\f1, \f3--input\f1 \f2<link>\f1 |
| |
Links binded to standart input (STDIN). |
| .PP |
|
| We could draw this scheme as a 'cyclic' graph: |
|
| .TP |
.TP |
| 0 -> 1 -> 2 -> 3 -, |
\f3-o\f1, \f3--output\f1 \f2<link>\f1 |
| |
Links binded to standart output (STDOUT). |
| .TP |
.TP |
| ^-----------------` |
\f3-e\f1, \f3--errput\f1 \f2<link>\f1 |
| |
Links binded to standart error output (STDERR). |
| .SH BUGS |
.TP |
| blah |
\f3-n\f1, \f3--name\f1 \f2<process-name>\f1 |
| .PP |
Name of process. Process can have zero, one or more names. |
| Please report bugs you happen to find to |
.TP |
| .B Ondrej Jombik |
\f3-N\f1, \f3--nice\f1 \f2<value>\f1 |
| .BI<neptun@pobox.sk> |
Process run priority. A value from 20 to -20. Only superuser may specify |
| .SH LICENSE |
negative values. |
| .B Ep |
.PP |
| is free software; you can redistribute it and/or modify |
When using \f3--input\f1, \f3--output\f1 or \f3--errput\f1 option, you have to |
| it under the terms of the GNU General Public License as published by |
pass link specification as a parameter. Link specification consist of two parts |
| the Free Software Foundation; either version 2 of the License, or |
separated with comma: linked process name and its stream name. For example if you |
| (at your option) any later version. |
want to link process output to other process with name "telnet" input, you have |
| |
to write something like \f3--output\f1 \f2telnet.input\f1. |
| .SH AUTHOR |
.PP |
| .I Ep |
Processes have automatically assigned its index number as a name. Any amount of |
| was written by |
other names or aliases can be specified fro one process. Process with index 0 |
| .B Ondrej Jombik |
is means STDIN, STDOUT and STDERR. Other process indexes are counted from 1 |
| .BI <nepto@pobox.sk> |
according to their order of definition on command line or configuration file. |
| .B Lubomir Host |
.SH EXAMPLES |
| .BI <rajo@host.sk> |
Here is an example how to create simple pop3 e-mails fetcher. You have to write |
| |
the "my-pop3-client.sh" script file, which will communicate via STDIN and |
| See file |
STDOUT streams. It's aim is to simulate human presence at the other end of the |
| .I Authors |
telnet connection, so in example it will type "USER jones", "PASS |
| for a list of people contributing to this project. |
mysecretpassword" and other appropriate POP3 commands as if you typed them. |
| .P |
.PP |
| The homepage of ep can be found at |
ep -i 0.in,1.out -o 2.in -e 0.err telnet example.com 110 |
| .BI http://ep.miesto.sk/ |
.br |
| |
-- -i 1.out -o 0.out,1in -e 0.err ./my_pop3_client.sh |
| |
.PP |
| |
Now we can try something more useful. Let's create encryption/decryption |
| |
communication layer between our terminal and remote host. Assume we have the |
| |
"encoder.sh", "decoder.sh", "logger.sh" scripts. |
| |
.PP |
| |
ep -i 0.i -o 2.i -e 0.e ./encoder.sh |
| |
.br |
| |
-- -i 1.o -o 3.i -e 0.e telnet secret.example.com |
| |
.br |
| |
-- -i 2.o -o 0.o -e 0.e ./decoder.sh |
| |
.br |
| |
-- -i 1.o,2.o,3.o,1.e,2.e,3.e -o 0.o -e 0.e ./logger.sh |
| |
.br |
| .P |
.P |
| This manual page was written by |
Now take closer look at this scheme. |
| .B Martin Karas |
.B ep |
| .BI <wolcano@pobox.sk> |
represents the user. The output goes to the screen, the input is taken from |
| |
keyboard. The shortcuts or better say process indexes are: |
| |
.PP |
| |
0 - user |
| |
.br |
| |
1 - encoder |
| |
.br |
| |
2 - telnet |
| |
.br |
| |
3 - decoder |
| |
.br |
| |
4 - logger |
| |
.PP |
| |
The communication streams between programs are here showed graphically: |
| |
.PP |
| |
+----------+ +---------+ |
| |
.br |
| |
| keyboard | -> | encoder | |
| |
.br |
| |
+----------+ +---------+ |
| |
.br |
| |
| | |
| |
.br |
| |
v v |
| |
.br |
| |
+--------+ +--------+ |
| |
.br |
| |
| telnet | -> | logger | |
| |
.br |
| |
+--------+ +--------+ |
| |
.br |
| |
| ^ |
| |
.br |
| |
v | |
| |
.br |
| |
+---------+ +---------+ |
| |
.br |
| |
| monitor | <- | decoder | |
| |
.br |
| |
+---------+ +---------+ |
| |
.br |
| |
.SH FILES |
| |
.TP |
| |
/etc/ep.conf |
| |
global configuration file |
| |
.TP |
| |
~/.ep.conf |
| |
per-user configuration file |
| |
.SH AUTHORS |
| |
Developed by Ondrej Jombik <nepto@platon.sk> |
| |
and Lubomir Host <rajo@platon.sk> |
| |
.sp |
| |
Copyright (c) 2000-2003 Platon SDG, http://www.platon.sk/ |
| |
.sp |
| |
Comments, suggestions, bug reports and patches are always welcome. Please |
| |
e-mail them to the following <platon@pobox.sk> e-mail address and write |
| |
.B ep |
| |
keyword in the Subject line. |
| |
.sp |
| |
This manual page was initially written by Martin Karas in April 2001 and |
| |
updated by Ondrej Jombik in 18th April 2003. |
| |
.SH HOMEPAGE |
| |
The official |
| |
.B ep |
| |
homepage is: |
| |
.sp |
| |
.RS |
| |
.UR |
| |
http://www.platon.sk/projects/ep/ |
| |
.sp |
| |
.UE |
| |
.RE |
| |
The libcfg+ project management page is: |
| |
.sp |
| |
.RS |
| |
.UR |
| |
http://www.platon.sk/projects/main_page.php?project_id=1 |
| |
(not estabilished yet) |
| |
.sp |
| |
.UE |
| |
.RE |
| |
Use |
| |
.B ep |
| |
project management page to submit bugs, feature requests, |
| |
suggestions for improvements or improved code. There is also online |
| |
documentation browser, download central and discussion forum available for |
| |
asking support questions. |
| |
.SH LICENSE |
| |
This program is free software; you can redistribute it and/or modify it under |
| |
the terms of the GNU General Public License as published by the Free Software |
| |
Foundation; either version 2, or (at your option) any later version. |
| |
.sp |
| |
This program is distributed in the hope that it will be useful, but WITHOUT ANY |
| |
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
| |
PARTICULAR PURPOSE. See the GNU General Public License for more details. |
| |
.sp |
| |
You should have received a copy of the GNU General Public License along with |
| |
this library; if not, write to the Free Software Foundation, Inc., 59 Temple |
| |
Place - Suite 330, Boston, MA 02111-1307, USA. |
| .SH "SEE ALSO" |
.SH "SEE ALSO" |
| .BR cat (1), |
.BR cat (1), |
| .BR grep (1) |
.BR grep (1), |
| .BR pipe (1) |
.BR bash (1), |
| |
.BR pipe (2) |
| |
|