#!/bin/sh
#
# 2010-2014 Nico Schottelius (nico-cdist at schottelius.org)
# 2014 Daniel Heule (hda at sfs.biz)
#
# This file is part of cdist.
#
# cdist 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.
#
# cdist 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 cdist. If not, see .
#
#
# Generate manpage that lists available types
#
__cdist_pwd="$(pwd -P)"
__cdist_mydir="${0%/*}";
__cdist_abs_mydir="$(cd "$__cdist_mydir" && pwd -P)"
__cdist_myname=${0##*/};
__cdist_abs_myname="$__cdist_abs_mydir/$__cdist_myname"
filename="${__cdist_myname%.sh}"
dest="$__cdist_abs_mydir/$filename"
cd "$__cdist_abs_mydir"
exec > "$dest"
cat << eof
Reference
=========
Variable, path and type reference for cdist
Explorers
---------
The following global explorers are available:
eof
(
cd ../../cdist/conf/explorer
for explorer in $(ls * | LC_ALL=C sort); do
echo "- $explorer"
done
)
cat << eof
Paths
-----
\$HOME/.cdist
The standard cdist configuration directory relative to your home directory.
This is usually the place you want to store your site specific configuration.
cdist/conf/
The distribution configuration directory.
This contains types and explorers to be used.
cdist/inventory/
The distribution inventory directory.
This path is relative to cdist installation directory.
confdir
Cdist will use all available configuration directories and create
a temporary confdir containing links to the real configuration directories.
This way it is possible to merge configuration directories.
By default it consists of everything in \$HOME/.cdist and cdist/conf/.
For more details see cdist(1).
confdir/files/
Cdist does not care about this directory besides providing access to it.
It is thought to be a general file storage area.
confdir/manifest/init
This is the central entry point.
It is an executable (+x bit set) shell script that can use
values from the explorers to decide which configuration to create
for the specified target host.
Its intent is to used to define mapping from configurations to hosts.
confdir/manifest/*
All other files in this directory are not directly used by cdist, but you
can separate configuration mappings, if you have a lot of code in the
conf/manifest/init file. This may also be helpful to have different admins
maintain different groups of hosts.
confdir/explorer/
Contains explorers to be run on the target hosts, see \`cdist explorer \`_.
confdir/type/
Contains all available types, which are used to provide
some kind of functionality. See \`cdist type \`_.
confdir/type//
Home of the type .
This directory is referenced by the variable __type (see below).
confdir/type//man.rst
Manpage in reStructuredText format (required for inclusion into upstream).
confdir/type//manifest
Used to generate additional objects from a type.
confdir/type//gencode-local
Used to generate code to be executed on the source host.
confdir/type//gencode-remote
Used to generate code to be executed on the target host.
confdir/type//parameter/required
Parameters required by type, \n separated list.
confdir/type//parameter/optional
Parameters optionally accepted by type, \n separated list.
confdir/type//parameter/default/*
Default values for optional parameters.
Assuming an optional parameter name of 'foo', it's default value would
be read from the file confdir/type//parameter/default/foo.
confdir/type//parameter/boolean
Boolean parameters accepted by type, \n separated list.
confdir/type//explorer
Location of the type specific explorers.
This directory is referenced by the variable __type_explorer (see below).
See \`cdist explorer \`_.
confdir/type//files
This directory is reserved for user data and will not be used
by cdist at any time. It can be used for storing supplementary
files (like scripts to act as a template or configuration files).
out/
This directory contains output of cdist and is usually located
in a temporary directory and thus will be removed after the run.
This directory is referenced by the variable __global (see below).
out/explorer
Output of general explorers.
out/object
Objects created for the host.
out/object/