Provided by: signify_1.14-7_all bug

NAME

       signify - Program to generate semi-random signatures

SYNOPSIS

       signify [--fifo=$HOME/.signature] [--input=file] [--debug]

DESCRIPTION

       Signify  will  take  a  signature  description  file  (  ~/.signify  or whatever file is specified by the
       --input=<file> option ) and create a random signature based on the information contained  therein.   This
       allows the ability to do such things as pick a random quote for each message sent.

       Signify,  by  default,  will  write  the  generated  signature  to  standard  output from where it can be
       redirected to overwrite the .signature file.  Alternatively, Signify can pipe  it's  output  to  a  given
       'fifo'.  Each read from that file will return a different signature.

       To  use  the FIFO feature, delete the current "$HOME/.signature" file and start Signify in the background
       like "signify --fifo=$HOME/.signature &".  With this running, try "cat $HOME/.signature" a few times.   A
       different  signature  will  be  returned  each time.  (Note: This feature will probably work only on unix
       systems.)

       The --debug switch causes Signify to generate messages on what it is doing to  stderr.   This  switch  is
       only meant to be useful to the program's maintainers.

CONFIGURATION

       The  definition  for the generated signatures is contained entirely within the .signify file contained in
       the user's home directory.  Any completely empty lines (lines with even a  single  space  are  considered
       part  of  the  signature data) and those lines starting with a hash character (#) are completely ignored.
       Those lines starting with a percent sign (%) are considered commands and affect the way Signify behaves.

       Perl Command Substitution

       Signify can execute an arbitrary perl code fragment during the initial reading of the configuration file.
       This can be used, for example, to choose values or text depending on the environment in which Signify  is
       being  run.   To  use this feature, simply enclose the desired perl code in back-tics (i.e. `perl code`).
       Whatever the perl code evaluates to will be substituted in that spot.  No further variable  substitutions
       are made on the resulting text.  Signify is intelligent enough to recognize two back-tics together (often
       used  as  a  better  looking  quotation mark) as not being a code fragment.  Thus, writing something like
       "``Stop,'' she said." will appear as expected.  Note: The entire code fragment must  be  contained  on  a
       single line of the input file.

       Defining Variables

       Signify  will  substitute  variables  within each line of the signature in much the same way as the shell
       would.  Any sequence of $WORD; will be replaced by the value corresponding to the name "WORD".   Case  is
       significant  but  the  trailing semicolon may be omitted if the next character is not a letter, digit, or
       underscore.  By default, these variables look up values inside the environment variables, but can also be
       defined or redefined within the .signify file itself with a command such as:

           % $email=myid@mycompany.com

       Everything after the equal sign (=) is considered part of the  value.   Variables  can  be  used  in  the
       definition of other variables.  As a special case, $$ will evaluate to a single dollar sign ($).

       The special variable SIGWIDTH can be used to set the desired output width of the generated signature.  By
       default,  this  variable  has  the value "79".  There is also a BLANK variable you can place on a line to
       create a totally empty line when the signature is output.

       Including Other Files

       You can tell Signify to read another file in place of the current line with a command like:

           % include $HOME/.signify-quotes

       For convienence, you can use a tilde (~) instead of $HOME to read a file relative to your home directory.

       Creating Alternates

       An unlimited number of "alternates" can be specified by using the "{", "|", and "}" commands.   When  the
       signature is generated, only one of all the possible alternates will be output.  For example:

           % {
           This is the first possibility.
           % |
           This is the second possibility.
           % |
           This is the third (and last) possibility.
           Note that alternatives can span multiple lines.
           % }

       Creating Columns

       Signify will automatically create side-by-side columns with nice, even spacing by using the "(", "|", and
       ")"  commands.   When  output,  everything will be padded out with spaces to fit nicely on the line.  For
       example:

           % (
           This is the
           first column.
           % |
           This is the second.
           % |
           This is the third
           (and last) column.
           % )

       Nesting Sections

       Alternates and columns can be nested to any depth, though this can quickly become unwieldy  and  may  not
       work exactly as expected, especially with columns.  As a general rule, only supply alignment options (eg.
       "center",  "right")  at  the  most  outside  level  to do any text formatting.  For example, if supplying
       multiple "alternates" within a column, put the alignment options on the column and not on the alternates.

       Section Command Options

       The "alternates" and "columns" commands can take options to alter how they behave.  The  following  is  a
       list  of  supported  options  and  what  they  do, though not all have meaning for both types of section.
       Multiple options can be specified by separating them with a comma (,).

       bottom push the following lines of text to the bottom of a column should it have  fewer  lines  than  the
              longest column.  This option has no meaning to "alternates" sections.

       center adjust  the  following  lines  to  be  centered  on  the  page  or in the column.  When used in an
              "alternates" section, an additional "=<number>" can be used  to  specify  what  column  to  center
              around instead of the middle of the page.

       exec   treat  the  following lines not as text to be included in the column or alternate, but as commands
              to be executed by the shell.  For each command executed, if its return status is 0 then the output
              it produced is included at that point, otherwise the output is discarded.  Any  included  text  is
              then aligned, etc. as usual.  This command is most useful for inserting random quotes generated by
              programs such as fortune(6).

       left   adjust  the  following  lines  so  they  sit  at  the left margin.  This is the default horizontal
              alignment and most closely reflects how the lines are entered into the .signify file itself.  Note
              that pad spaces will still be placed on both sides of a column with this type of alignment  unless
              the minwidth option is also specified.

       minwidth
              do  not  pad  the left and right sides of this column when placing next to other columns.  This is
              useful for building column separator lines and the like that are not really part of  the  content.
              This option has no meaning to "alternates" sections.

       repeat output  the  following  lines  multiple times to fill all lines in the column.  This is useful for
              building column separator lines and the like that are just  a  repeated  sequence.   A  multi-line
              sequence  can  be specified and only those lines necessary to fill the column will be output.  The
              entire sequence will be output in its entirety at least once, however.  This option has no meaning
              to "alternates" sections.

       right  adjust the following lines so they sit at the right margin.  Note that pad spaces  will  still  be
              placed  on  both  sides of a column with this type of alignment unless the minwidth option is also
              specified.

       top    push the following lines of text to the top of a column  should  it  have  fewer  lines  than  the
              longest  column.   This  is the default action if no vertical centering is specified.  This option
              has no meaning to "alternates" sections.

       vcenter
              push the following lines of text in the vertical center of a column should  it  have  fewer  lines
              than the longest column.  This option has no meaning to "alternates" sections.

       weight=<number>
              change  the  likelihood  a  given  alternate will be chosen.  The chance of any specific alternate
              being chosen is the given <number> divided by the total of all weights.   If  not  specified,  the
              weight  defaults  to 1.0.  Decimal numbers and numbers less that 1.0 are allowed.  This option has
              no meaning to "columns" sections.

THE COST OF FREE SOFTWARE

       Let's face it: Somebody has to pay for all software that gets written.  Whether it is the time donated by
       the programmer or the salary donated by the company, everything has its  cost.   Signify  has  been  made
       available  to the general public in the hope that it will be useful and thus help raise the visibility of
       the people that sponsored its creation.  In this way, the cost of  creating  Signify  is  offset  by  the
       publicity gained.  If you use this program and would like to further the development of such software, it
       is  asked  (but  by no means required) that you put something like the following in the quotes section of
       your .signify file.

           % | center, weight=0.1
           Generated by $PROGRAM.  For this and more, visit $WEBSITE

       (for single-line quote)  or  (for multi-line in a column)

           % | weight=0.1
           This signature was automatically generated with
           $PROGRAM.  For this and other cool products,
           check out $WEBSITE

       These are weighted very low (though you are more than welcome to increase these weightings :-)  and  will
       thus  show  up  in  your  signature only occasionally.  The variables are defined internal to Signify and
       provide the program name (including version number) and the web site where it can be found.  We thank you
       for your support!

BUGS

       Please report any bugs to: bcwhite@pobox.com

AUTHOR

       Signify was written and documented by Brian White <bcwhite@pobox.com> on August 24th, 1996.

COPYRIGHT

       Signify has been placed in the public domain, the only true "free".  It would be apprecated if copies  of
       any  improvements  or  bug-fixes  would  be  sent to the author in order to be incorporated into the main
       upstream code and propagated to all users of this software.

96.08.24                                  Public domain by Brian White                                SIGNIFY(1)