diff --git a/cdist/conf/type/__apt_ppa/man.text b/cdist/conf/type/__apt_ppa/man.text
index 6a5990d5..da18e9f0 100644
--- a/cdist/conf/type/__apt_ppa/man.text
+++ b/cdist/conf/type/__apt_ppa/man.text
@@ -16,7 +16,8 @@ This cdist type allows manage ubuntu ppa repositories.
REQUIRED PARAMETERS
-------------------
state::
- The state the ppa should be in, either "present" or "absent".
+ The state the ppa should be in, either 'present' or 'absent'.
+ Defaults to 'present'
OPTIONAL PARAMETERS
@@ -29,6 +30,8 @@ EXAMPLES
--------------------------------------------------------------------------------
# Enable a ppa repository
+__apt_ppa ppa:sans-intern/missing-bits
+# same as
__apt_ppa ppa:sans-intern/missing-bits --state present
# Disable a ppa repository
@@ -43,5 +46,5 @@ SEE ALSO
COPYING
-------
-Copyright \(C) 2011 Steven Armstrong. Free use of this software is
+Copyright \(C) 2011-2014 Steven Armstrong. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).
diff --git a/cdist/conf/type/__apt_ppa/manifest b/cdist/conf/type/__apt_ppa/manifest
index e7ad0c26..1d90e9c4 100755
--- a/cdist/conf/type/__apt_ppa/manifest
+++ b/cdist/conf/type/__apt_ppa/manifest
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
+# 2011-2014 Steven Armstrong (steven-cdist at armstrong.cc)
#
# This file is part of cdist.
#
@@ -20,9 +20,10 @@
name="$__object_id"
-__package python-software-properties --state present
+__package software-properties-common
+__package python-software-properties
-require="__package/python-software-properties" \
+require="__package/software-properties-common __package/python-software-properties" \
__file /usr/local/bin/remove-apt-repository \
--source "$__type/files/remove-apt-repository" \
--mode 0755
diff --git a/cdist/conf/type/__apt_ppa/parameter/default/state b/cdist/conf/type/__apt_ppa/parameter/default/state
new file mode 100644
index 00000000..e7f6134f
--- /dev/null
+++ b/cdist/conf/type/__apt_ppa/parameter/default/state
@@ -0,0 +1 @@
+present
diff --git a/cdist/conf/type/__apt_ppa/parameter/required b/cdist/conf/type/__apt_ppa/parameter/optional
similarity index 100%
rename from cdist/conf/type/__apt_ppa/parameter/required
rename to cdist/conf/type/__apt_ppa/parameter/optional
diff --git a/cdist/conf/type/__cdist/manifest b/cdist/conf/type/__cdist/manifest
index 44d62f6c..7c0ae60e 100755
--- a/cdist/conf/type/__cdist/manifest
+++ b/cdist/conf/type/__cdist/manifest
@@ -27,23 +27,11 @@ else
shell=""
fi
-if [ -f "$__object/parameter/username" ]; then
- username="$(cat "$__object/parameter/username")"
-else
- username="cdist"
-fi
+username="$(cat "$__object/parameter/username")"
-if [ -f "$__object/parameter/branch" ]; then
- branch="$(cat "$__object/parameter/branch")"
-else
- branch="master"
-fi
+branch="$(cat "$__object/parameter/branch")"
-if [ -f "$__object/parameter/source" ]; then
- source="$(cat "$__object/parameter/source")"
-else
- source="git://github.com/telmich/cdist.git"
-fi
+source="$(cat "$__object/parameter/source")"
# Currently hardcoded - if anyone cares, make a parameter
# out of it
diff --git a/cdist/conf/type/__cdist/parameter/default/branch b/cdist/conf/type/__cdist/parameter/default/branch
new file mode 100644
index 00000000..1f7391f9
--- /dev/null
+++ b/cdist/conf/type/__cdist/parameter/default/branch
@@ -0,0 +1 @@
+master
diff --git a/cdist/conf/type/__cdist/parameter/default/source b/cdist/conf/type/__cdist/parameter/default/source
new file mode 100644
index 00000000..d669308f
--- /dev/null
+++ b/cdist/conf/type/__cdist/parameter/default/source
@@ -0,0 +1 @@
+git://github.com/telmich/cdist.git
diff --git a/cdist/conf/type/__cdist/parameter/default/username b/cdist/conf/type/__cdist/parameter/default/username
new file mode 100644
index 00000000..a585e141
--- /dev/null
+++ b/cdist/conf/type/__cdist/parameter/default/username
@@ -0,0 +1 @@
+cdist
diff --git a/cdist/conf/type/__debconf_set_selections/gencode-remote b/cdist/conf/type/__debconf_set_selections/gencode-remote
index 62be6a12..4892ec25 100755
--- a/cdist/conf/type/__debconf_set_selections/gencode-remote
+++ b/cdist/conf/type/__debconf_set_selections/gencode-remote
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# 2011 Nico Schottelius (nico-cdist at schottelius.org)
+# 2011-2014 Nico Schottelius (nico-cdist at schottelius.org)
#
# This file is part of cdist.
#
@@ -21,6 +21,12 @@
# Setup selections
#
+filename"$(cat "$__object/parameter/file")"
+
+if [ "$filename" = "-" ]; then
+ filename="$__object/stdin"
+fi
+
echo "debconf-set-selections << __file-eof"
-cat "$(cat "$__object/parameter/file")"
+cat "$(cat "$filename")"
echo "__file-eof"
diff --git a/cdist/conf/type/__debconf_set_selections/man.text b/cdist/conf/type/__debconf_set_selections/man.text
index f1e13a8e..e36ebaa3 100644
--- a/cdist/conf/type/__debconf_set_selections/man.text
+++ b/cdist/conf/type/__debconf_set_selections/man.text
@@ -18,6 +18,7 @@ REQUIRED PARAMETERS
-------------------
file::
Use the given filename as input for debconf-set-selections(1)
+ If filename is "-", read from stdin.
EXAMPLES
@@ -29,6 +30,10 @@ __debconf_set_selections nslcd --file /path/to/file
# Setup configuration for nslcd from another type
__debconf_set_selections nslcd --file "$__type/files/preseed/nslcd"
+
+__debconf_set_selections nslcd --file - << eof
+gitolite gitolite/gituser string git
+eof
--------------------------------------------------------------------------------
@@ -41,5 +46,5 @@ SEE ALSO
COPYING
-------
-Copyright \(C) 2011-2013 Nico Schottelius. Free use of this software is
+Copyright \(C) 2011-2014 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).
diff --git a/cdist/conf/type/__jail/gencode-local b/cdist/conf/type/__jail/gencode-local
index 075a6ef1..d6384156 100755
--- a/cdist/conf/type/__jail/gencode-local
+++ b/cdist/conf/type/__jail/gencode-local
@@ -23,7 +23,7 @@
#
if [ -f "$__object/parameter/jaildir" ]; then
- jaildir="$(cat "$__object/parameter/name")"
+ jaildir="$(cat "$__object/parameter/jaildir")"
else
jaildir="/usr/jail"
fi
diff --git a/cdist/conf/type/__jail/gencode-remote b/cdist/conf/type/__jail/gencode-remote
index b044e4b0..afbb81a5 100755
--- a/cdist/conf/type/__jail/gencode-remote
+++ b/cdist/conf/type/__jail/gencode-remote
@@ -85,7 +85,7 @@ if [ -f "$__object/parameter/onboot" ]; then
fi
if [ -f "$__object/parameter/jaildir" ]; then
- jaildir="$(cat "$__object/parameter/name")"
+ jaildir="$(cat "$__object/parameter/jaildir")"
else
jaildir="/usr/jail"
fi
diff --git a/cdist/conf/type/__jail/manifest b/cdist/conf/type/__jail/manifest
index 0570d62d..cf5b7938 100755
--- a/cdist/conf/type/__jail/manifest
+++ b/cdist/conf/type/__jail/manifest
@@ -34,7 +34,7 @@ if [ ! "$os" = "freebsd" ]; then
fi
if [ -f "$__object/parameter/jaildir" ]; then
- jaildir="$(cat "$__object/parameter/name")"
+ jaildir="$(cat "$__object/parameter/jaildir")"
else
jaildir="/usr/jail"
fi
diff --git a/cdist/conf/type/__key_value/gencode-remote b/cdist/conf/type/__key_value/gencode-remote
index ec91894f..b79d9688 100755
--- a/cdist/conf/type/__key_value/gencode-remote
+++ b/cdist/conf/type/__key_value/gencode-remote
@@ -21,8 +21,8 @@
key="$__object_id"
[ -f "$__object/parameter/key" ] && key="$(cat "$__object/parameter/key")"
-state_should=present
-[ -f "$__object/parameter/state" ] && state_should="$(cat "$__object/parameter/state")"
+
+state_should="$(cat "$__object/parameter/state")"
file="$(cat "$__object/parameter/file")"
delimiter="$(cat "$__object/parameter/delimiter")"
diff --git a/cdist/conf/type/__key_value/manifest b/cdist/conf/type/__key_value/manifest
index 8ed9cc9c..56f4c874 100755
--- a/cdist/conf/type/__key_value/manifest
+++ b/cdist/conf/type/__key_value/manifest
@@ -19,8 +19,7 @@
# along with cdist. If not, see .
#
-state_should=present
-[ -f "$__object/parameter/state" ] && state_should="$(cat "$__object/parameter/state")"
+state_should="$(cat "$__object/parameter/state")"
if [ "$state_should" = "present" -a ! -f "$__object/parameter/value" ]; then
echo "Missing required parameter 'value'" >&2
diff --git a/cdist/conf/type/__key_value/parameter/default/state b/cdist/conf/type/__key_value/parameter/default/state
new file mode 100644
index 00000000..e7f6134f
--- /dev/null
+++ b/cdist/conf/type/__key_value/parameter/default/state
@@ -0,0 +1 @@
+present
diff --git a/cdist/conf/type/__qemu_img/gencode-remote b/cdist/conf/type/__qemu_img/gencode-remote
index 2a76cf8f..6e4bb4d0 100644
--- a/cdist/conf/type/__qemu_img/gencode-remote
+++ b/cdist/conf/type/__qemu_img/gencode-remote
@@ -2,8 +2,7 @@
# State: absent is handled by manifest - we need only to do stuff if image is
# not existing and state != absent
#
-state="present"
-[ -f "$__object/parameter/state" ] && state="$(cat "$__object/parameter/state")"
+state="$(cat "$__object/parameter/state")"
[ "$state" = "absent" ] && exit 0
exists="$(cat "$__object/explorer/exists")"
@@ -13,8 +12,7 @@ exists="$(cat "$__object/explorer/exists")"
# Still there? Create image
#
-format=qcow2
-[ -f "$__object/parameter/format" ] && format="$(cat "$__object/parameter/format")"
+format="$(cat "$__object/parameter/format")"
size="$(cat "$__object/parameter/size")"
diskimage="/$__object_id"
diff --git a/cdist/conf/type/__qemu_img/manifest b/cdist/conf/type/__qemu_img/manifest
index b835301d..6d50037f 100644
--- a/cdist/conf/type/__qemu_img/manifest
+++ b/cdist/conf/type/__qemu_img/manifest
@@ -2,10 +2,8 @@
# Default settings
#
-format=qcow2
-state=present
-[ -f "$__object/parameter/format" ] && format="$(cat "$__object/parameter/format")"
-[ -f "$__object/parameter/state" ] && state="$(cat "$__object/parameter/state")"
+format="$(cat "$__object/parameter/format")"
+state="$(cat "$__object/parameter/state")"
diskimage="/$__object_id"
diff --git a/cdist/conf/type/__qemu_img/parameter/default/format b/cdist/conf/type/__qemu_img/parameter/default/format
new file mode 100644
index 00000000..e0a90ab9
--- /dev/null
+++ b/cdist/conf/type/__qemu_img/parameter/default/format
@@ -0,0 +1 @@
+qcow2
diff --git a/cdist/conf/type/__qemu_img/parameter/default/state b/cdist/conf/type/__qemu_img/parameter/default/state
new file mode 100644
index 00000000..e7f6134f
--- /dev/null
+++ b/cdist/conf/type/__qemu_img/parameter/default/state
@@ -0,0 +1 @@
+present
diff --git a/cdist/conf/type/__qemu_img/parameter/optional b/cdist/conf/type/__qemu_img/parameter/optional
index 0e8469e7..71b9a32b 100644
--- a/cdist/conf/type/__qemu_img/parameter/optional
+++ b/cdist/conf/type/__qemu_img/parameter/optional
@@ -1 +1,2 @@
format
+state
diff --git a/cdist/conf/type/__zypper_repo/gencode-remote b/cdist/conf/type/__zypper_repo/gencode-remote
index 4d834c47..f678552b 100644
--- a/cdist/conf/type/__zypper_repo/gencode-remote
+++ b/cdist/conf/type/__zypper_repo/gencode-remote
@@ -45,11 +45,7 @@ else
id="$__object_id"
fi
-if [ -f "$__object/parameter/state" ]; then
- state="$(cat "$__object/parameter/state")"
-else
- state="present"
-fi
+state="$(cat "$__object/parameter/state")"
repo_id="$(cat "$__object/explorer/repo_id")"
diff --git a/cdist/conf/type/__zypper_service/gencode-remote b/cdist/conf/type/__zypper_service/gencode-remote
index d11749ae..df8d1660 100644
--- a/cdist/conf/type/__zypper_service/gencode-remote
+++ b/cdist/conf/type/__zypper_service/gencode-remote
@@ -39,17 +39,8 @@ else
uri="$__object_id"
fi
-if [ -f "$__object/parameter/state" ]; then
- state_should="$(cat "$__object/parameter/state")"
-else
- state_should="present"
-fi
-
-if [ -f "$__object/parameter/type" ]; then
- stype="$(cat "$__object/parameter/type")"
-else
- stype="ris"
-fi
+state_should="$(cat "$__object/parameter/state")"
+stype="$(cat "$__object/parameter/type")"
exp_uri="$(cat "$__object/explorer/service_uri")"
exp_id="$(cat "$__object/explorer/service_id")"
diff --git a/cdist/conf/type/__zypper_service/manifest b/cdist/conf/type/__zypper_service/manifest
index d8773605..aa4a39a3 100644
--- a/cdist/conf/type/__zypper_service/manifest
+++ b/cdist/conf/type/__zypper_service/manifest
@@ -33,11 +33,7 @@ else
uri="$__object_id"
fi
-if [ -f "$__object/parameter/state" ]; then
- state_should="$(cat "$__object/parameter/state")"
-else
- state_should="present"
-fi
+state_should="$(cat "$__object/parameter/state")"
exp_uri="$(cat "$__object/explorer/service_uri")"
diff --git a/docs/changelog b/docs/changelog
index 242f92b0..34e44913 100644
--- a/docs/changelog
+++ b/docs/changelog
@@ -4,12 +4,25 @@ Changelog
* Changes are always commented with their author in (braces)
* Exception: No braces means author == Nico Schottelius
-3.0.3:
+3.0.4:
+ * Documentation: Update reference (files path in object space)
+ * Type __apt_ppa: Install required software (Steven Armstrong)
+ * Type __debconf_set_selections: Support --file - to read from stdin
+ * Type __jail: Fix jaildir parameter handling (Jake Guffey)
+
+
+3.0.3: 2014-01-22
* Core: Enhance error message when requirement is missing object id
* Core: Add environment variable to select shell for executing scripts (Daniel Heule)
* Explorer hostname: Return host name by using uname -n
* New Type: __hostname (Steven Armstrong)
+ * Type __cdist: Use default paremeters (Daniel Heule)
+ * Type __key_value: Use default paremeters (Daniel Heule)
* Type __line: Use printf instead of echo for printing user input
+ * Type __qemu_img: Use default paremeters (Daniel Heule)
+ * Type __zypper_repo: Use default paremeters (Daniel Heule)
+ * Type __zypper_service: Use default paremeters (Daniel Heule)
+
3.0.2: 2014-01-19
* Documentation: Document all messages sent by types (Daniel Heule)
diff --git a/docs/man/cdist-reference.text.sh b/docs/man/cdist-reference.text.sh
index a72452eb..5c9f603c 100755
--- a/docs/man/cdist-reference.text.sh
+++ b/docs/man/cdist-reference.text.sh
@@ -131,7 +131,8 @@ confdir/type//explorer::
confdir/type//files::
This directory is reserved for user data and will not be used
- by cdist at any time
+ 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
@@ -175,9 +176,16 @@ OBJECTS
For object to object communication and tests, the following paths are
usable within a object directory:
+files::
+ This directory is reserved for user data and will not be used
+ by cdist at any time. It can be used freely by the type
+ (for instance to store template results).
changed::
This empty file exists in an object directory, if the object has
code to be excuted (either remote or local)
+stdin::
+ This file exists and contains data, if data was provided on stdin
+ when the type was called.
ENVIRONMENT VARIABLES
diff --git a/docs/man/man7/cdist-best-practice.text b/docs/man/man7/cdist-best-practice.text
index e6685cad..a818be60 100644
--- a/docs/man/man7/cdist-best-practice.text
+++ b/docs/man/man7/cdist-best-practice.text
@@ -164,8 +164,8 @@ For more details consult sudoers(5)
TEMPLATING
----------
-* create directory templates/ in your type (convention)
-* create the template as an executable file like templates/basic.conf.sh, it will output text using shell variables for the values
+* create directory files/ in your type (convention)
+* create the template as an executable file like files/basic.conf.sh, it will output text using shell variables for the values
--------------------------------------------------------------------------------
#!/bin/sh
@@ -191,7 +191,7 @@ EOF
export ROOT='/var/www/test'
# render the template
mkdir -p "$__object/files"
- "$__type/templates/basic.conf.sh" > "$__object/files/basic.conf"
+ "$__type/files/basic.conf.sh" > "$__object/files/basic.conf"
# send the rendered template
__file /etc/nginx/sites-available/test.conf \
--state present