.lf 1 lib/en/man1/cook_bom.1
'\" t
.\" cook - file construction tool
.\" Copyright (C) 1998, 1999, 2002, 2007, 2008 Peter Miller
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 3 of the License, 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 program. If not, see
.\" .
.\"
.lf 1 lib/en/man1/z_name.so
.\"
.\" cook - file construction tool
.\" Copyright (C) 1994, 1995, 1997, 2007, 2008 Peter Miller
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 3 of the License, 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 program. If not, see
.\" .
.\"
.ds n) cook
.ds N) Cook
.if n .nr )M 8n
.if n .nr IN 8n
.if n .nr )I 8n
.if n .po 0
.if n .hy 0
.if n .ad l
.lf 20 lib/en/man1/cook_bom.1
.ds n) cook_bom
.TH \*(n) 1 Cook "Reference Manual"
.SH NAME
\*(n) \- bill of materials
.XX "cook_bom(1)" "bill of materials
.SH SYNOPSIS
.B \*(n)
[
.IR option \&...
]
.I dirname
[
.I outfile
]
.br
.B \*(n)
.B -Help
.br
.B \*(n)
.B -VERSion
.SH DESCRIPTION
The
.I \*(n)
program is used to scan a directory and generate a cookbook fragment
containing a bill of materials for that directory. It also includes a
recursive reference, via an ``#include-cooked'' directive, to the bills
of materials for nested directories.
.PP
Output is sent to the standard output unless an output filename is specified.
.br
.ne 1i
.SH OPTIONS
The following options are understood:
.TP 8n
\fB-DIRectory\fP \fIpathname\fP
This option may be used to specify a directory search path,
similar to \fIcook\fP(1) \f[CW][search_list]\fP functionality.
.TP 8n
.B -Help
.br
Provide some help with using the
.I \*(n)
program.
.TP 8n
\fB-IGnore\fP \fIstring\fP
This option may be used to specify filename patterns to be ignored.
It may be given as many times as required.
.TP 8n
\fB-PREfix\fP \fIstring\fP
This option may be manipulate the name of the manifest files.
Defaults to the empty string if not set.
.TP 8n
\fB-SUFfix\fP \fIstring\fP
This option may be manipulate the name of the manifest files.
Defaults to ``\f[CW]/manifest.cook\fP if not set.
.TP 8n
.B -VERSion
.br
Print the version of the
.I \*(n)
program being executed.
.PP
All other options will produce a diagnostic error.
.lf 1 lib/en/man1/o__rules.so
.\"
.\" cook - file construction tool
.\" Copyright (C) 1993, 1997, 2007, 2008 Peter Miller
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 3 of the License, 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 program. If not, see
.\" .
.\"
.PP
All options may be abbreviated;
the abbreviation is documented as the upper case letters,
all lower case letters and underscores (_) are optional.
You must use consecutive sequences of optional letters.
.PP
All options are case insensitive,
you may type them in upper case or lower case or a combination of both,
case is not important.
.PP
For example:
the arguments "-help", "-HEL" and "-h" are
all interpreted to mean the \fB-Help\fP option.
The argument "-hlp" will not be understood,
because consecutive optional characters were not supplied.
.PP
Options and other command line arguments may be
mixed arbitrarily on the command line.
.br
.ne 4
.PP
The GNU long option names are understood.
Since all option names for
.I \*(n)
are long,
this means ignoring the extra leading '-'.
The "\fB--\fIoption\fB=\fIvalue\fR" convention is also understood.
.lf 84 lib/en/man1/cook_bom.1
.lf 1 lib/en/man1/z_exit.so
.\"
.\" cook - file construction tool
.\" Copyright (C) 1993, 1994, 1997, 2001, 2007, 2008 Peter Miller
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 3 of the License, 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 program. If not, see
.\" .
.\"
.br
.ne 1i
.SH EXIT STATUS
The
.I \*(n)
command will exit with a status of 1 on any error.
The
.I \*(n)
command will only exit with a status of 0 if there are no errors.
.lf 85 lib/en/man1/cook_bom.1
.SH EXAMPLE
The intended use of this command is to automatically generate a project
file manifest in an efficient way.
If you have a cookbook of the form
.RS
.nf
.ft CW
.ta 8n 16n 24n
all_files_in_. = ;
#include manifest.cook
manifest = [all_files_in_.];
set fingerprint mkdir unlink;
%0manifest.cook: ["if" [in "%0" ""] "then" "." "else" "%0"]
{
cook_bom
[addprefix '--dir=' [search_list]]
"--ignore='*~'"
[need]
[target]
;
}
.ft R
.fi
.RE
At the end of this fragment, the \f[CW]manifest\fP variable contains a
complete list of all files in the directory tree. This variable may
then be taken apart with the \f[CW]match_mask\fP function to build
ingredients lists.
.PP
The constructed \fImanifest.cook\fP files work for both whole-project
and recursive (not recommended) builds.
.lf 1 lib/en/man1/copyright.so
.\"
.\" cook - file construction tool
.\" Copyright (C) 1993-1995, 1997, 2007-2009 Peter Miller
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 3 of the License, 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 program. If not, see
.\" .
.\"
.br
.ne 1i
.SH COPYRIGHT
.lf 1 etc/../etc/version.so
.ds V) 2.33.D001
.ds v) 2.33
.ds Y) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
.lf 23 lib/en/man1/copyright.so
.I \*(n)
version \*(v)
.br
Copyright
.if n (C)
.if t \(co
.nr d) \n(.d
\*(Y) Peter Miller
.if '\n(d)'\n(.d' .br
.PP
The
.I \*(n)
program comes with ABSOLUTELY NO WARRANTY;
for details use the '\fI\*(n) -VERSion License\fP' command.
This is free software
and you are welcome to redistribute it under certain conditions;
for details use the '\fI\*(n) -VERSion License\fP' command.
.br
.ne 1i
.SH AUTHOR
.TS
tab(;);
l r l.
Peter Miller;E-Mail:;pmiller@opensource.org.au
/\e/\e*;WWW:;http://miller.emu.id.au/pmiller/
.TE
.lf 119 lib/en/man1/cook_bom.1