cdist-language(7)
=================
Nico Schottelius <nico-cdist--@--schottelius.org>


NAME
----
cdist-language - Cdist Configuration language


DESCRIPTION
-----------
A cdist configuration consists of the following parts:

- host definitions (cdist-language-hosts(7))
- library (cdist-language-library(7))
- modules (cdist-language-modules(7))

In short the configuration is built as follows:

- conf/hosts/init is executed, the resulting output is used for module loading
- the appropriate modules are loaded and executed, which
- use library functions.

The three stages are used to seperate configurations:

- hosts contain mappings to created modules
- modules create (probably site specific) configurations using library collections
- the library is shipped with cdist, but can be extendet locally


   - DSL: Shell!
      - gives if, else and EVEN elsif for free!
      - and case
      - and and and
      - and there's no os (solaris doesn't count) without a usable /bin/sh
      - cdist defines what you can use
         - you _can_ use os specific stuff
         - but it's ugly and you shoot into your own foot
      - "manifests" (use the same name here?) will be run/sourced
         - inheritance possible via sourcing
         - cdist-lib always preloaded
      - library == functions?

   - matching on explored items, not only on host name?
         - match function in host? [optional]
         - explorer ran before!

- document exported variables!
   use __ prefix instead of __cdist (shorter writing, __ is defined as sytem anyway)

- library vs. modules?

Requirements:
   It MUST be incredible easy/dumb to add new types.
      => growable default types

   - how to write a module
      - module function autoloading via *.sh
      - module "manifest"?
         - create functions in *.sh 
         - name functions "modulename_function"
            module hellow
            function kitty
            => hellow_kitty

      - you are advised (not forced) to put files
         to a subdirectory named "files"

SEE ALSO
--------


COPYING
-------
Copyright \(C) 2010 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).