Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Friday, April 19, 2024
About Us
Magazine
Open Source
CVS
Services
Index  »  Projects  »  ep  »  Documentation  »  Man  »  ep (1)

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)

Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top · Feedback form · Application form
Report bug on PLATON.SK website · Terms of use · Privacy policy