  ffiilllluupp (8)
  Joerg Dippel, jd@suse.de

  v1.21, Feb 2003

  This document describes the SuSE ffiilllluupp tool.






  11..  NNAAMMEE



  ffiilllluupp - the SuSE tool for merging config files



  22..  SSYYNNOOPPSSIISS


  ffiilllluupp [options] basefile addfile outputfile


  ffiilllluupp [options] basefile addfile


  ffiilllluupp -V|--version ...


  ffiilllluupp -h|--help ...



  33..  DDEESSCCRRIIPPTTIIOONN


  ffiilllluupp - merges input files into one resulting output file. Usually,
  each file is a configuration file.

  ffiilllluupp merges files which are holding variables (ie configuration or
  environment variables).  A variable is defined by an entity composed
  of a preceding comment, a variable name, an assignment delimiter, and
  a related variable value.  A variable is determined by its variable
  name.

  A preceding comment is optional.  An assignment delimiter may be
  optional, but if there is an assignment delimiter, a variable name
  must precede it.  The last entity may be composed only of a comment.

  Only if variables are included in both input files (basefile and
  addfile) ffiilllluupp has to select one of the variables.  Otherwise, if
  variables are included only in one of the input files they are added
  to the resulting output file (with the exception of the
  -i|--ignoreDefinites option).

  The functionality is now controlled by a parameter which determines
  whether a variable included both in the basefile and in the addfile is
  taken from the former or from the latter.  Furthermore, a parameter
  controls whether the variable is removed from a copy of the basefile.

  To keep the ffiilllluupp v1.04 functionality, the outputfile parameter can
  be omitted -- this means the resulting output file is named exactly
  like the first input file name (basefile = outputfile).
  If variables should be removed from the basefile, the basefile is not
  touched, but the result is written to basefile.new.

  If basefile includes a header as part of the first variable this
  header is preserved only for the outputfile if after the header an
  empty line follows.

  Starting with version 1.20 handling of metadata for  /etc/sysconfig
  files  is  included.   Metadata  is part of preceding comment, each
  metadata line begins with double hash ("##"). A metadata line contains
  a  pair (keyword):(value). The value itself can be described on
  several lines, each beginning with double hash and the  optional
  keyword.



  44..  EEXXAAMMPPLLEESS

  ffiilllluupp -m "/etc/rc.config" "my.config" "/etc/rc.config"

  All variables of "/etc/rc.config" are passed to the resulting output
  file "/etc/rc.config".  Only within "my.config" defined variables are
  appended.


  ffiilllluupp -exchange "/etc/rc.config" "my.config"

  Only variables of "/etc/rc.config" that are not also defined within
  "my.config" are passed to the resulting output file "/etc/rc.config"
  All variables of "my.config" are appended.


  ffiilllluupp -m -r "/etc/rc.config" "my.config" "/etc/rc.config"

  All variables of "/etc/rc.config" are passed to the resulting output
  file "/etc/rc.config".  Only within "my.config" defined variables are
  appended.  The additional parameter '-r' removes variables defined
  more than once from a copy of "/etc/rc.config".  "/etc/rc.config" is
  not touched and the result of the removal is written to
  "/etc/rc.config.new".


  ffiilllluupp -i "/etc/rc.config" "my.config"

  This is a filter functionality. Variables of "/etc/rc.config" are only
  passed to the resulting output file "/etc/rc.config" if they are
  defined in both input files.  Because "my.config" is normally only a
  list of variable names from "/etc/rc.config", this is named filter
  functionality.  Additionally variables of "my.config" are appended if
  they are defined only in "my.config".



  55..  OOPPTTIIOONNSS

  There are many options, which are displayed if ffiilllluupp is called
  without or with the -h or --help parameter.

  Most of the parameters are based on v1.04. Next only the useful
  parameters are listed:






     -i, --ignoreDefinites    don't write variables to the output
                              if they are only defined in basefile
     -t, --trailing           save trailing comments at end of file
     -v, --verbose            maximum output to screen
     -V, --version            print <bf/fillup/ version and exit
     -c | --char <char>       use <char> as comment marker
     -d | --delim <char>      use <char> as delimiter
     -m, --maintain           check for maintaining the basefile
     -x, --exchange           check for exchange
     -r, --remove             check for removal within basefile




  66..  EEXXIITT CCOODDEE

  ffiilllluupp returns EXIT_SUCCESS on successful completion.  Otherwise an
  exception handler is called, which may return EXIT_FAILURE.



  77..  BBUUGGSS

  If a bug occurs which is not based on invalid options or missing input
  files, please add the option -v|--verbose to the call. The result and
  some classificationis are displayed to locate the bug.

  With handlung of  metadata  and  thus  replacement  of  information
  within files a hardly documented debugging feature is introduced by
  adding two options on command line:  information  about  a  special
  variable  (given  by  --variable  (variable name)) is logged into a
  special file (determined by --logfile (file name)).



  88..  CCOOPPYYRRIIGGHHTT

  ffiilllluupp is copyright 1996,1997,1998,1999,2000,2001 by SuSE GmbH,
  Germany.
  ffiilllluupp is copyright 2002,2003 by SuSE Linux AG, Germany.
  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
  PARTICULAR PURPOSE.


  99..  AAUUTTHHOORR

  Martin Scherbaum, maddin@suse.de (v1.04, 1996)
  Joerg Dippel,     jd@suse.de     (v1.05, 1998)
  Joerg Dippel,     jd@suse.de     (v1.06, 2000)
  Joerg Dippel,     jd@suse.de     (v1.10, 2002)
  Joerg Dippel,     jd@suse.de     (v1.21, 2003)















