Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cdf(4)

context(5)

clusterconf(4)

acl(5)

makecdf(1M)

NAME

makecdf − create context-dependent files

SYNOPSIS

makecdf [[-d default] [-f source_file]] [[-c context] ... ] file ...

DESCRIPTION

makecdf creates a context-dependent file (CDF) for each file passed on the command line.  A list of contexts is generated from the −c options, or if no contexts are specified, makecdf creates a default context list from the cnode names appearing in /etc/clusterconf.  CDF elements are created for each name in this context list (except as described below). 

If file exists but is neither a CDF nor a directory, it is converted to a CDF whose elements are created by duplicating the original contents of file (or the contents of the source_file if the −f option is used). 

If file exists and is an ordinary directory, the elements are not created by duplicating its contents into each CDF element.  Instead, the files in the directory are moved into a directory whose name is the first context element mentioned on the command line, and empty directories are created for the remaining context elements.  If no elements are specified (that is, if there are no −c options), the first entry in /etc/clusterconf is used as the name.  In order to do this, the user must have write permission on file or be the super-user. 

If file exists and is already a CDF, either the −d or −f option must be used to specify what should be duplicated to create the new CDF elements in the context list. 

If file does not exist and there is no −f option, a CDF is created with empty contents whose names are those in the specified context list.  In this case, CDF elements are created only for those contexts explicitly specified by the −c options (that is, /etc/clusterconf is not consulted). 

When making a CDF out of a device file, makecdf makes an appropriate cnode-specific device file for each element named by cnode name if cnode name exists in /etc/clusterconf.  Otherwise, the cnode ID of the original device file is copied to the new file. 

Type, ownership, file mode bits, and access control lists of the CDF elements match those of file (see acl(5)). Contents of regular files and directories are copied to the new elements (see WARNINGS below).  Ownership and the access control list of the CDF match those of the parent directory of file.

Only the file owner or superuser may convert a file to a CDF. 

Options

makecdf supports the following options:

−c context Create the named CDF element.  Causes file+/context to be created.  More than one −c option can be specified to construct a context list. 

−d default Duplicate an existing CDF element.  Useful only for adding elements to existing context-dependent files.  The −d option specifies which existing element of the CDF is to be duplicated into a new element. 

−f source_file Duplicate source_file to the elements of the CDF.  This option is only effective when file does not exist or is already a CDF.  Ownership and permissions are preserved.  The filename − indicates that the standard input should be copied to the elements, which become regular files with ownership and permissions much like files normally created by the shells.  Note: The WARNING about file types below applies to this option as well as to file arguments. 

RETURN VALUE

An exit code of 0 is returned if the CDFs are created without error.  An exit code of 1 is returned in the case of any failure to create a CDF. 

Warnings do not result in an exit code of 1, because they are not considered catastrophic. 

DIAGNOSTICS

Errors in system calls are displayed with whatever useful arguments are available. 

Warnings are printed if operations cannot be performed as expected, although the CDF is still created.  These warnings generally result from failure to change owner or change permissions of a file, or from inability to clean up the temporary file or fully recover from a failure. 

Many messages make sense only when you understand how the program works.  In particular, a temporary file is used to hold file while the CDF is created.  The temporary file is then renamed, or copied and later removed.  Some messages refer to operations attempted on the temporary file. 

Most other messages are self explanatory. 

EXAMPLES

Turn the file /etc/issue into a CDF with an element for each cluster node name in /etc/clusterconf:

makecdf /etc/issue

Turn the file /etc/motd into a CDF with the context elements localroot and remoteroot:

makecdf -c localroot -c remoteroot /etc/motd

Add the context cnode3 to the existing CDF /etc/issue using the context element cnode1 as the file to duplicate:

makecdf -c cnode3 -d cnode1 /etc/issue

Create a new CDF menu for which there is no existing file, copy the contents of menu1 into the element cnode1 and the contents of menu2 into the element cnode2:

makecdf -c cnode1 -f menu1 menu
makecdf -c cnode2 -f menu2 menu

To move all files currently in ~/bin to ~/bin+/HP−MC68010 while creating the empty directory ~/bin+/HP−MC68020, execute the command:

makecdf -c HP−MC68010 -c HP−MC68020 ~/bin

WARNINGS

Note that makecdf attempts to create elements identical in type to file; thus, specifying the file /dev/null results in creating special file elements rather than creating empty regular files.  The latter operation is correctly performed by using the command:

makecdf -f - file < /dev/null

makecdf treats directories somewhat differently than other types of files.  (See the last example in the EXAMPLES section.) 

makecdf does not overwrite existing elements of existing CDFs. 

It is not intended that makecdf be used for creating context-dependent HP-UX system files.  System files are created automatically during system installation or update. 

DEPENDENCIES

NFS Access control lists of networked files are summarized (as returned in st_mode by stat(2)), but not copied to the new file.

AUTHOR

makecdf was developed by HP. 

SEE ALSO

cdf(4), context(5), clusterconf(4), acl(5). 

Hewlett-Packard Company  —  HP-UX Release 9.0: August 1992

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026