MESSAGE-PASS(1p)

NAME
message-pass - command line Message::Passing runner script

SYNOPSIS
  message-pass [options]

  Options:
   --input           - Input short name (required)
   --output          - Output short name (required)
   --filter          - Filter short name (default Null)
   --decoder         - Decoder short name (default JSON)
   --encoder         - Encoder short name (default JSON)
   --input_options   - JSON options string for input
   --output_options  - JSON options string for output
   --filter_options  - JSON options string for filter
   --decoder_options - JSON options string for decoder
   --encoder_options - JSON options string for encoder

  OR:

   --configfile     - Config file (to load with Config::Any)
                      supplying the above options

DESCRIPTION
Builds a simple chain of Message::Passing components, looking like this:

    Input => Decoder => Filter => Encoder => Output

This allows you to input a message from one protocol, decode it, process it and then output it again having encoded it.

The simplest example of doing this is:

    message-pass --input STDIN --output STDOUT

Which will echo JSON strings you type back to the terminal.

CLASS NAME EXPANSION
All short class names undergo expansion as detailed below, except for names which are prefixed with a '+', which implies a full class name.

E.g.

    message-pass --input '+My::Example::Input' --output STDOUT

The expansions are:

input
    Message::Passing::Input::XXX

output
    Message::Passing::Output::XXX

filter
    Message::Passing::Filter::XXX

encoder
    Message::Passing::Filter::Encoder::XXX

decoder
    Message::Passing::Filter::Decoder::XXX

CONFIG FILE
If the "--configfile" option is supplied, then a config file will be used.

The format of data in this config file matches that required of the command line options, e.g.

    {
        "input":"XXX",
        "input_options":{},
        "output":"XXX",
        "output_options":{},
        "filter":"XXX",
        "filter_options":{},
        "encoder":"XXX",
        "encoder_options":{},
        "decoder":"XXX",
        "decoder_options":{}
    }

Any config format supported by Config::Any can be used, however JSON is the only format which is certain to work without additional dependencies which are not required by this module.

SEE ALSO

Message::Passing
Message::Passing::Manual

SPONSORSHIP
This module exists due to the wonderful people at Suretec Systems Ltd. <http://www.suretecsystems.com/> who sponsored its development for its VoIP division called SureVoIP <http://www.surevoip.co.uk/> for use with the SureVoIP API - <http://www.surevoip.co.uk/support/wiki/api_documentation>

AUTHOR, COPYRIGHT AND LICENSE
See Message::Passing.