Merge branch 'master' of git://git.schottelius.org/cdist

This commit is contained in:
Andreas Brönnimann 2011-04-05 19:52:16 +02:00
commit 23c35acf16
12 changed files with 49 additions and 23 deletions

15
README
View file

@ -106,14 +106,15 @@ how to use cdist.
There are at least the following branches available: There are at least the following branches available:
* master: the development branch * master: the development branch
* 1.5: Focus on object orientation instead of global stage orientation * 1.6: New types, cleaned up \_\_package* types, internal cleanup
Old versions: Old versions:
* 1.5: Focus on object orientation instead of global stage orientation
* 1.4: Support for redefiniton of objects (if equal) * 1.4: Support for redefiniton of objects (if equal)
* 1.3: Support for local and remote code execution (current stable) * 1.3: Support for local and remote code execution (current stable)
* 1.2: Dependencies supported * 1.2: Dependencies supported
* 1.1: __file to __file, __directory, __link migration * 1.1: \_\_file to \_\_file, \_\_directory, \_\_link migration
* 1.0: First official release * 1.0: First official release
Other branches may be available for features or bugfixes, but they Other branches may be available for features or bugfixes, but they
@ -123,7 +124,7 @@ may vanish at any point. To select a specific branch use
git checkout -b <name> origin/<name> git checkout -b <name> origin/<name>
# Stay on a specific version # Stay on a specific version
version=1.5 version=1.6
git checkout -b $version origin/$version git checkout -b $version origin/$version
### Mirrors ### Mirrors
@ -145,6 +146,14 @@ If you stay on a version branche (i.e. 1.0, 1.1., ...), nothing should break.
The master branch on the other hand is the development branch and may not be The master branch on the other hand is the development branch and may not be
working, break your setup or eat the tree in your garden. working, break your setup or eat the tree in your garden.
### Upgrading from 1.5 to 1.6
* If you used **\_\_package_apt --preseed**, you need to use the new
type **\_\_debconf_set_selections** instead.
* The **\_\_package** types accepted either --state deinstalled or
--state uninstaaled. Starting with 1.6, it was made consistently
to --state removed.
### Upgrading from 1.3 to 1.5 ### Upgrading from 1.3 to 1.5
No incompatiblities. No incompatiblities.

View file

@ -19,7 +19,7 @@
# #
# #
__cdist_version="1.5.0" __cdist_version="1.6.0pre"
# Fail if something bogus is going on # Fail if something bogus is going on
set -u set -u

View file

@ -17,7 +17,7 @@ It dispatches the actual work to the package system dependant types.
REQUIRED PARAMETERS REQUIRED PARAMETERS
------------------- -------------------
state:: state::
The state the package should be in, either "installed" or "uninstalled" The state the package should be in, either "installed" or "removed"
OPTIONAL PARAMETERS OPTIONAL PARAMETERS

View file

@ -46,10 +46,14 @@ case "$state" in
echo $aptget install \"$name\" echo $aptget install \"$name\"
fi fi
;; ;;
uninstalled) removed)
# Remove only if existent # Remove only if existent
if [ -n "$is_installed" ]; then if [ -n "$is_installed" ]; then
echo $aptget remove \"$name\" echo $aptget remove \"$name\"
fi fi
;; ;;
*)
echo "Unknown state: $state" >&2
exit 1
;;
esac esac

View file

@ -17,7 +17,7 @@ manage packages.
REQUIRED PARAMETERS REQUIRED PARAMETERS
------------------- -------------------
state:: state::
Either "installed" or "deinstalled". Either "installed" or "removed".
OPTIONAL PARAMETERS OPTIONAL PARAMETERS
@ -37,7 +37,7 @@ __package_apt zsh --state installed
__package_apt webserver --state installed --name nginx __package_apt webserver --state installed --name nginx
# Remove obsolete package # Remove obsolete package
__package_apt puppet --state deinstalled __package_apt puppet --state removed
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View file

@ -44,9 +44,13 @@ case "$state" in
echo pacman "$pacopts" -S \"$name\" echo pacman "$pacopts" -S \"$name\"
fi fi
;; ;;
uninstalled) removed)
if [ "$pkg_version" ]; then if [ "$pkg_version" ]; then
echo pacman "$pacopts" -R \"$name\" echo pacman "$pacopts" -R \"$name\"
fi fi
;; ;;
*)
echo "Unknown state: $state" >&2
exit 1
;;
esac esac

View file

@ -17,7 +17,7 @@ packages.
REQUIRED PARAMETERS REQUIRED PARAMETERS
------------------- -------------------
state:: state::
Either "installed" or "deinstalled". Either "installed" or "removed".
OPTIONAL PARAMETERS OPTIONAL PARAMETERS
@ -37,7 +37,7 @@ __package_pacman zsh --state installed
__package_pacman python --state installed --name python2 __package_pacman python --state installed --name python2
# Remove obsolete package # Remove obsolete package
__package_pacman puppet --state deinstalled __package_pacman puppet --state removed
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View file

@ -39,9 +39,13 @@ case "$state" in
echo yum $opts install \"$name\" echo yum $opts install \"$name\"
fi fi
;; ;;
uninstalled) removed)
if ! grep -q "$not_installed" "$__object/explorer/pkg_version"; then if ! grep -q "$not_installed" "$__object/explorer/pkg_version"; then
echo yum $opts remove \"$name\" echo yum $opts remove \"$name\"
fi fi
;; ;;
*)
echo "Unknown state: $state" >&2
exit 1
;;
esac esac

View file

@ -18,7 +18,7 @@ slightly confusing error message "Error: Nothing to do".
REQUIRED PARAMETERS REQUIRED PARAMETERS
------------------- -------------------
state:: state::
Either "installed" or "deinstalled". Either "installed" or "removed".
OPTIONAL PARAMETERS OPTIONAL PARAMETERS
@ -38,7 +38,7 @@ __package_yum zsh --state installed
__package_yum python --state installed --name python2 __package_yum python --state installed --name python2
# Remove obsolete package # Remove obsolete package
__package_yum puppet --state deinstalled __package_yum puppet --state removed
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View file

@ -3,6 +3,8 @@
* New type __debconf_set_selections * New type __debconf_set_selections
* New explorer os_version * New explorer os_version
* Fix Type __group in case of __group NAME syntax * Fix Type __group in case of __group NAME syntax
* Fix __package* types: consistently name --state removed instead of
uninstalled or deinstalled
* Type __package gained Fedora support * Type __package gained Fedora support
* Removed --preseed support from __package_apt * Removed --preseed support from __package_apt
* explorer/os: gained Fedora support * explorer/os: gained Fedora support

View file

@ -27,6 +27,15 @@ CORE
- for use in manifest, code, etc.? - for use in manifest, code, etc.?
- for creating temporary files, etc. - for creating temporary files, etc.
- How to cleanly implement "restart service if config file changed"
- Cache
- add example how to use
- export variable $__cache
-> for current host
-> add function to cdist-config, import from cdist-cache
- check all all internal variables are prefixed with __cdist
TYPES TYPES
------ ------
@ -35,19 +44,12 @@ TYPES
- regexp replace (can probably cover all?) - regexp replace (can probably cover all?)
-> aka sed. -> aka sed.
- __cron - __cron
- __user: - __user
add option to include --create-home add option to include --create-home
fix __user NAME case (same issue as __group)
DOCUMENTATION DOCUMENTATION
-------------- --------------
- asciidoc interprets __, which we use for variables - asciidoc interprets __, which we use for variables
names -> seek through docs and replace with \_\_! names -> seek through docs and replace with \_\_!
- check all all internal variables are prefixed with __cdist
- reference explorers in cdist-reference! - reference explorers in cdist-reference!
Cache:
- add example how to use
- export variable $__cache
-> for current host
-> add function to cdist-config, import from cdist-cache

View file

@ -59,7 +59,8 @@ HOW TO SUBMIT A NEW TYPE
Submitting a type works as described above, with the additional requirement Submitting a type works as described above, with the additional requirement
that a corresponding manpage named man.text in asciidoc format with that a corresponding manpage named man.text in asciidoc format with
the manpage-name "cdist-type__NAME" is included in the type directory the manpage-name "cdist-type__NAME" is included in the type directory
AND asciidoc is able to compile it. AND asciidoc is able to compile it (i.e. do NOT have to many "=" in the second
line).
SEE ALSO SEE ALSO