Man Linux: Main Page and Category List

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, writting 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 propogated to all users of this software.