diff --git a/bin/cdist-manifest-recursive-run b/bin/cdist-manifest-recursive-run new file mode 100755 index 00000000..da9187fd --- /dev/null +++ b/bin/cdist-manifest-recursive-run @@ -0,0 +1,57 @@ +#!/bin/sh +# +# 2010 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 . +# +# +# For each created object +# run the manifest of the type (with object id), +# try to merge back newly created objects (otherwise fail), +# mark the object as being run +# and iterate until all objects are marked being run. +# + +. cdist-config + +if [ $# -ne 2 ]; then + __cdist_usage " " +fi + +set -eu + +__cdist_output_dir="$1"; shift +__cdist_manifest="$1"; shift + +__cdist_object_ran_all=0 + +while [ "$__cdist_object_ran_all" = 0 ]; do + +done + +# Ensure binaries exist and are up-to-date +cdist-build-bin + +# prepend our path, so all cdist tools come before other tools +PATH="${__cdist_cache_bin}:$PATH" + +# Force -x, so the user is aware the file is executed +if [ ! -x "${__cdist_manifest_init}" ]; then + __cdist_exit_err "${__cdist_manifest_init} needs to be executable." +fi + +mkdir -p "${__cdist_output_dir}" +"${__cdist_manifest}"