diff --git a/conf/type/__directory/explorer/exists b/conf/type/__directory/explorer/state
similarity index 96%
rename from conf/type/__directory/explorer/exists
rename to conf/type/__directory/explorer/state
index f8b85671..9bdd9024 100755
--- a/conf/type/__directory/explorer/exists
+++ b/conf/type/__directory/explorer/state
@@ -24,7 +24,7 @@
destination="/$__object_id"
if [ -e "$destination" ]; then
- echo yes
+ echo present
else
- echo no
+ echo absent
fi
diff --git a/conf/type/__directory/gencode-remote b/conf/type/__directory/gencode-remote
index e871547a..56bd73a1 100755
--- a/conf/type/__directory/gencode-remote
+++ b/conf/type/__directory/gencode-remote
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# 2011 Nico Schottelius (nico-cdist at schottelius.org)
+# 2011-2012 Nico Schottelius (nico-cdist at schottelius.org)
#
# This file is part of cdist.
#
@@ -18,56 +18,43 @@
# along with cdist. If not, see .
#
-destination="/$__object_id"
-state_should="$(cat "$__object/parameter/state")"
-
-case "$state_should" in
- present)
- # Include parent directories?
- if [ -f "$__object/parameter/parents" ]; then
- parents="$(cat "$__object/parameter/parents")"
- if [ yes = "$parents" ]; then
- mkdiropt="-p"
- else
- mkdiropt=""
- fi
- fi
-
- if [ -f "$__object/parameter/recursive" ]; then
- if [ yes = "$(cat "$__object/parameter/recursive")" ]; then
- recursive="-R"
- fi
- fi
+# Check state and exit if nothing needs to be done
+state_should="present"
+[ -f "$__object/parameter/state" ] && state_should="$(cat "$__object/parameter/state")"
+state_is="$(cat "$__object/explorer/state")"
+[ "$state_should" = "$state_is" ] && exit 0
- # Only create if not already existent
- if [ no = "$(cat "$__object/explorer/exists")" ]; then
- echo mkdir $mkdiropt \"$destination\"
- fi
-
- # Mode settings
- if [ -f "$__object/parameter/mode" ]; then
- echo chmod \"$(cat "$__object/parameter/mode")\" \"$destination\"
- fi
-
- # Group
- if [ -f "$__object/parameter/group" ]; then
- echo chgrp $recursive \"$(cat "$__object/parameter/group")\" \"$destination\"
- fi
+destination="/$__object_id"
- # Owner
- if [ -f "$__object/parameter/owner" ]; then
- echo chown $recursive \"$(cat "$__object/parameter/owner")\" \"$destination\"
- fi
- ;;
- absent)
- # Only delete if it exists
- if [ yes = "$(cat "$__object/explorer/exists")" ]; then
- echo rm -rf \"$destination\"
- fi
+mkdiropt=""
+grep yes "$__object/parameter/parents" >/dev/null 2>&1 && mkdiropt="-p"
+recursive=""
+grep yes "$__object/parameter/recursive" >/dev/null 2>&1 && recursive="-R"
- ;;
- *)
- echo "Unknown state: $state_should" >&2
- exit 1
- ;;
+case "$state_should" in
+ present)
+ echo mkdir $mkdiropt \"$destination\"
+
+ # Mode settings
+ if [ -f "$__object/parameter/mode" ]; then
+ echo chmod \"$(cat "$__object/parameter/mode")\" \"$destination\"
+ fi
+
+ # Group
+ if [ -f "$__object/parameter/group" ]; then
+ echo chgrp $recursive \"$(cat "$__object/parameter/group")\" \"$destination\"
+ fi
+
+ # Owner
+ if [ -f "$__object/parameter/owner" ]; then
+ echo chown $recursive \"$(cat "$__object/parameter/owner")\" \"$destination\"
+ fi
+ ;;
+ absent)
+ echo rm -rf \"$destination\"
+ ;;
+ *)
+ echo "Unknown state: $state_should" >&2
+ exit 1
+ ;;
esac
diff --git a/conf/type/__directory/manifest b/conf/type/__directory/manifest
deleted file mode 100755
index a8ee5a6f..00000000
--- a/conf/type/__directory/manifest
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-#
-# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
-#
-# 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 .
-#
-
-# set defaults
-state="$(cat "$__object/parameter/state" 2>/dev/null \
- || echo "present" | tee "$__object/parameter/state")"
diff --git a/doc/dev/logs/2012-06-15.explorer-dep-problem b/doc/dev/logs/2012-06-15.explorer-dep-problem
new file mode 100644
index 00000000..30803032
--- /dev/null
+++ b/doc/dev/logs/2012-06-15.explorer-dep-problem
@@ -0,0 +1,4 @@
+Known bug rediscovered:
+ Explorer for __start_on_boot mysql runs before __package mysql was finished.
+
+Requires two runs to actually finish the task.