ep/man/ep.1.html
ep(1) ep 1.0pre6 ep(1)
NAME
ep - extended pipelining
SYNOPSIS
ep [ GLOBAL OPTIONS -- ] [ PROCESSES OPTIONS ]
DESCRIPTION
ep is an easy-to-use pipeline process (re)director. It has the main ability to run any number of subâ
processes and redirect them basic filedescriptors. Basic filedescriptors are 0 (standart input), 1
(standart output) and 2 (standart errput). There is no restriction of pipe connection except that
process outputs (output, errput) must be bound with one or more processes input.
ep is a pipeline connector. For most of UNIX user there was a time they wanted to bend the pipe (ie.
make a bidirectional pipe) which could render many problems to a simple tasks of creating modules.
Application is mostly used for creating a communication tree between several programs which communicate
trhough STDIN, STDOUT and STDERR pipelines. ep supports cyclic pipelining (A -> B, B -> A) between
processes thus standing for a powerful tool for creating script-based modular projects.
GLOBAL OPTIONS
-h, --help
Print a help screen.
-q, --quiet
Force quiet mode.
-v, --verbose
Enable verbose mode. More -v means more verbose.
-f, --config-file <config-filename>
Load user defined configuration file.
--disable-global-config
Disable global configuration file loading.
--disable-user-config
Disable user configuration file loading.
PROCESSES OPTIONS
Processes are specified on command line after global options. Each process can be configured by ep proâ
cesses 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.
[ [ [ PROCS_1 cmd_1 ] -- PROCS_2 cmd_2 ] ... ]
PROCS_n are options of particular process, cmd_2 is command to run a process.
-i, --input <link>
Links binded to standart input (STDIN).
-o, --output <link>
Links binded to standart output (STDOUT).
-e, --errput <link>
Links binded to standart error output (STDERR).
-n, --name <process-name>
Name of process. Process can have zero, one or more names.
-N, --nice <value>
Process run priority. A value from 20 to -20. Only superuser may specify negative values.
When using --input, --output or --errput option, you have to pass link specification as a parameter.
Link specification consist of two parts separated with comma: linked process name and its stream name.
For example if you want to link process output to other process with name "telnet" input, you have to
write something like --output telnet.input.
Processes have automatically assigned its index number as a name. Any amount of other names or aliases
can be specified fro one process. Process with index 0 is means STDIN, STDOUT and STDERR. Other process
indexes are counted from 1 according to their order of definition on command line or configuration
file.
EXAMPLES
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 STDOUT streams. It's aim is to simulate human presâ
ence at the other end of the telnet connection, so in example it will type "USER jones", "PASS myseâ
cretpassword" and other appropriate POP3 commands as if you typed them.
ep -i 0.in,1.out -o 2.in -e 0.err telnet example.com 110
-- -i 1.out -o 0.out,1in -e 0.err ./my_pop3_client.sh
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.
ep -i 0.i -o 2.i -e 0.e ./encoder.sh
-- -i 1.o -o 3.i -e 0.e telnet secret.example.com
-- -i 2.o -o 0.o -e 0.e ./decoder.sh
-- -i 1.o,2.o,3.o,1.e,2.e,3.e -o 0.o -e 0.e ./logger.sh
Now take closer look at this scheme. ep represents the user. The output goes to the screen, the input
is taken from keyboard. The shortcuts or better say process indexes are:
0 - user
1 - encoder
2 - telnet
3 - decoder
4 - logger
The communication streams between programs are here showed graphically:
+----------+ +---------+
| keyboard | -> | encoder |
+----------+ +---------+
| |
v v
+--------+ +--------+
| telnet | -> | logger |
+--------+ +--------+
| ^
v |
+---------+ +---------+
| monitor | <- | decoder |
+---------+ +---------+
FILES
/etc/ep.conf
global configuration file
~/.ep.conf
per-user configuration file
AUTHORS
Developed by Ondrej Jombik <nepto@platon.sk> and Lubomir Host <rajo@platon.sk>
Copyright (c) 2000-2003 Platon SDG, http://platon.sk/
Comments, suggestions, bug reports and patches are always welcome. Please e-mail them to the following
<platon@pobox.sk> e-mail address and write ep keyword in the Subject line.
This manual page was initially written by Martin Karas in April 2001 and updated by Ondrej Jombik in
18th April 2003.
HOMEPAGE
The official ep homepage is:
http://platon.sk/projects/ep/
â¨â©
The ep project management page is:
http://platon.sk/projects/main_page.php?project_id=8
â¨â©
Use 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 availâ
able for asking support questions.
LICENSE
This program is free software; you can redistribute it and/or modify it under the terms of the GNU Genâ
eral Public License as published by the Free Software Foundation; either version 2, or (at your option)
any later version.
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.
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.
SEE ALSO
cat(1), grep(1), bash(1), pipe(2)
ep 1.0pre6 25th December 2003 ep(1)
|