forked from ungleich-public/cdist
2b380b7dc1
Conflicts: doc/changelog doc/dev/todo/niconext doc/man/cdist-reference.text.sh lib/cdist/core/explorer.py doc/man/cdist-reference.text.sh documents better reachability of variables - also suitable for master? Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
214 lines
6 KiB
Bash
Executable file
214 lines
6 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# 2010-2012 Nico Schottelius (nico-cdist at schottelius.org)
|
|
#
|
|
# 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 <http://www.gnu.org/licenses/>.
|
|
#
|
|
#
|
|
# 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/man7/$filename"
|
|
|
|
cd "$__cdist_abs_mydir"
|
|
|
|
exec > "$dest"
|
|
cat << eof
|
|
cdist-reference(7)
|
|
==================
|
|
Nico Schottelius <nico-cdist--@--schottelius.org>
|
|
|
|
NAME
|
|
----
|
|
cdist-reference - Variable, path and type reference for cdist
|
|
|
|
|
|
EXPLORERS
|
|
---------
|
|
The following global explorers are available:
|
|
|
|
eof
|
|
(
|
|
cd ../../conf/explorer
|
|
for explorer in *; do
|
|
echo "- $explorer"
|
|
done
|
|
)
|
|
|
|
cat << eof
|
|
|
|
PATHS
|
|
-----
|
|
If not specified otherwise, all paths are relative to the checkout directory.
|
|
|
|
conf/::
|
|
Contains the (static) configuration like manifests, types and explorers.
|
|
|
|
conf/manifest/init::
|
|
This is the central entry point used by cdist-manifest-init(1).
|
|
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.
|
|
It should be primary used to define mapping from configurations to hosts.
|
|
|
|
conf/manifest/*::
|
|
All other files in this directory are not directly used by cdist, but you
|
|
can seperate configuration mappings, if you have a lot of code in the
|
|
manifest/init file. This may also be helpful to have different admins
|
|
maintain different groups of hosts.
|
|
|
|
conf/explorer/<name>::
|
|
Contains explorers to be run on the target hosts, see cdist-explorer(7).
|
|
|
|
conf/type/::
|
|
Contains all available types, which are used to provide
|
|
some kind of functionality. See cdist-type(7).
|
|
|
|
conf/type/<name>/::
|
|
Home of the type <name>.
|
|
|
|
This directory is referenced by the variable __type (see below).
|
|
|
|
conf/type/<name>/man.text::
|
|
Manpage in Asciidoc format (required for inclusion into upstream)
|
|
|
|
conf/type/<name>/manifest::
|
|
Used to generate additional objects from a type.
|
|
|
|
conf/type/<name>/gencode-local::
|
|
Used to generate code to be executed on the server.
|
|
|
|
conf/type/<name>/gencode-remote::
|
|
Used to generate code to be executed on the client.
|
|
|
|
conf/type/<name>/parameters/required::
|
|
Parameters required by type, \n seperated list.
|
|
|
|
conf/type/<name>/parameters/optional::
|
|
Parameters optionally accepted by type, \n seperated list.
|
|
|
|
conf/type/<name>/explorer::
|
|
Location of the type specific explorers.
|
|
This directory is referenced by the variable __type_explorer (see below).
|
|
See cdist-explorer(7).
|
|
|
|
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/<object>::
|
|
Contains all object specific information.
|
|
This directory is referenced by the variable __object (see below).
|
|
|
|
out/object/<object>/explorers::
|
|
Output of type specific explorers, per object.
|
|
|
|
tmp_dir::
|
|
A tempdir and a tempfile is used by cdist internally,
|
|
which will be removed when the scripts end automatically.
|
|
|
|
TYPES
|
|
-----
|
|
The following types are available:
|
|
|
|
eof
|
|
|
|
for type in man7/cdist-type__*.text; do
|
|
no_dir="${type#man7/}";
|
|
no_type="${no_dir#cdist-type}";
|
|
name="${no_type%.text}";
|
|
name_no_underline="$(echo $name | sed 's/^__/\\__/g')"
|
|
man="${no_dir%.text}(7)"
|
|
|
|
echo "- $name_no_underline" "($man)"
|
|
done
|
|
|
|
cat << eof
|
|
|
|
|
|
OBJECTS
|
|
-------
|
|
For object to object communication and tests, the following paths are
|
|
usable within a object directory:
|
|
|
|
changed::
|
|
This empty file exists in an object directory, if the object has
|
|
code to be excuted (either remote or local)
|
|
|
|
|
|
ENVIRONMENT VARIABLES
|
|
---------------------
|
|
__explorer::
|
|
Directory that contains all global explorers.
|
|
Available for: explorer, type explorer
|
|
__manifest::
|
|
Directory that contains the initial manifest.
|
|
Available for: initial manifest
|
|
__global::
|
|
Directory that contains generic output like explorer.
|
|
Available for: initial manifest, type manifest, type gencode
|
|
__object::
|
|
Directory that contains the current object.
|
|
Available for: type manifest, type explorer, type gencode
|
|
__object_id::
|
|
The type unique object id.
|
|
Available for: type manifest, type explorer, type gencode
|
|
|
|
Note: The leading and the trailing "/" will always be stripped (caused by
|
|
the filesystem database and ensured by the core).
|
|
|
|
Note: Double slashes ("//") will not be fixed and result in an error.
|
|
__self::
|
|
DEPRECATED: Same as __object_name, do not use anymore, use __object_name instead.
|
|
Will be removed in cdist 3.x.
|
|
__object_name::
|
|
The full qualified name of the current object.
|
|
Available for: type manifest, type explorer, type gencode
|
|
__target_host::
|
|
The host we are deploying to.
|
|
Available for: explorer, initial manifest, type explorer, type manifest, type gencode
|
|
__type::
|
|
Path to the current type.
|
|
Available for: type manifest, type gencode
|
|
__type_explorer::
|
|
Directory that contains the type explorers.
|
|
Available for: type explorer
|
|
|
|
|
|
SEE ALSO
|
|
--------
|
|
- cdist(1)
|
|
|
|
|
|
COPYING
|
|
-------
|
|
Copyright \(C) 2011-2012 Nico Schottelius. Free use of this software is
|
|
granted under the terms of the GNU General Public License version 3 (GPLv3).
|
|
eof
|