| 
									
										
										
										
											2011-03-28 10:02:13 +02:00
										 |  |  | #!/bin/sh | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # 2010 Nico Schottelius (nico-cdist at schottelius.org) | 
					
						
							|  |  |  | # 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 <http://www.gnu.org/licenses/>. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #  | 
					
						
							|  |  |  | # Run the manifest for the given object. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | . cdist-config | 
					
						
							|  |  |  | [ $# -eq 2 ] || __cdist_usage "<target host> <object>" | 
					
						
							|  |  |  | set -eu | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __cdist_target_host="$1"; shift | 
					
						
							|  |  |  | __cdist_object="$1"; shift | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Full path to current object | 
					
						
							|  |  |  | __cdist_cur_object_dir="$(__cdist_object_dir "$__cdist_object")" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Only the id | 
					
						
							|  |  |  | __cdist_object_id="$(__cdist_object_id_from_object "$__cdist_object")" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-28 14:55:58 +02:00
										 |  |  | echo "Checking manifest for $__cdist_object ..." | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __cdist_type="$(__cdist_type_from_object "$__cdist_object")" | 
					
						
							|  |  |  | __cdist_manifest="$(__cdist_type_manifest "$__cdist_type")" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [ -f "$__cdist_manifest" ]; then | 
					
						
							|  |  |  |    if [ -x "$__cdist_manifest" ]; then | 
					
						
							|  |  |  |       # Make __cdist_manifest available for cdist-type-emulator | 
					
						
							|  |  |  |       export __cdist_manifest | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       echo "Executing manifest ${__cdist_manifest} ..." | 
					
						
							|  |  |  |       # Make variables available to non-core - FIXME: beatify | 
					
						
							|  |  |  |       export $__cdist_name_var_object="$__cdist_cur_object_dir" | 
					
						
							|  |  |  |       export $__cdist_name_var_object_id="$__cdist_object_id" | 
					
						
							|  |  |  |       export $__cdist_name_var_type="$(__cdist_type_dir "$__cdist_type")" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       cdist-manifest-run "$__cdist_target_host" "$__cdist_manifest" | 
					
						
							|  |  |  |       # Tell cdist that there may be new objects | 
					
						
							|  |  |  |       touch "$__cdist_new_objects_created" | 
					
						
							|  |  |  |    else | 
					
						
							|  |  |  |       __cdist_exit_err "${__cdist_manifest} needs to be executable." | 
					
						
							| 
									
										
										
										
											2011-03-28 10:02:13 +02:00
										 |  |  |    fi | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 |