forked from ungleich-public/cdist
		
	another cleanup and almost running cdist-manifest-recursive-run
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
		
					parent
					
						
							
								f4c53e800c
							
						
					
				
			
			
				commit
				
					
						3dacee432e
					
				
			
		
					 1 changed files with 35 additions and 33 deletions
				
			
		| 
						 | 
					@ -38,10 +38,17 @@ set -eu
 | 
				
			||||||
__cdist_output_dir="$1"; shift
 | 
					__cdist_output_dir="$1"; shift
 | 
				
			||||||
__cdist_object_dir="$1"; shift
 | 
					__cdist_object_dir="$1"; shift
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__cdist_object_ran_all=0
 | 
					# change to directory containing objects
 | 
				
			||||||
 | 
					cd "$__cdist_object_dir"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while [ "$__cdist_object_ran_all" = 0 ]; do
 | 
					# Loop until we do not create new objects anymore
 | 
				
			||||||
   cd "$__cdist_object_dir"
 | 
					# which is equal to all objects have been run
 | 
				
			||||||
 | 
					__cdist_object_created_new=1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					while [ "$__cdist_object_created_new" = 1 ]; do
 | 
				
			||||||
 | 
					   # assume we're done after this run
 | 
				
			||||||
 | 
					   __cdist_object_created_new=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   # find all objects (every object has the source recorded)
 | 
					   # find all objects (every object has the source recorded)
 | 
				
			||||||
   find . -name "$__cdist_object_source" |   \
 | 
					   find . -name "$__cdist_object_source" |   \
 | 
				
			||||||
| 
						 | 
					@ -49,43 +56,38 @@ while [ "$__cdist_object_ran_all" = 0 ]; do
 | 
				
			||||||
          -e 's;^./;;'                       \
 | 
					          -e 's;^./;;'                       \
 | 
				
			||||||
      > "$__cdist_tmp_file"
 | 
					      > "$__cdist_tmp_file"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   cat "$__cdist_tmp_file"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   while read object; do
 | 
					   while read object; do
 | 
				
			||||||
      if [ ! -f "${object}/$__cdist_object_finished" ]; then
 | 
					      if [ ! -f "${object}/$__cdist_object_finished" ]; then
 | 
				
			||||||
         echo "Running object ${object} ..."
 | 
					         echo "Running object ${object} ..."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         manifest="${object}/${__cdist_name_init}"
 | 
				
			||||||
 | 
					         if [ -x "${manifest}" ]; then
 | 
				
			||||||
 | 
					            cdist-manifest-run "${manifest}" "${__cdist_tmp_dir}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            echo "Merging stuff back..."
 | 
					            echo "Merging stuff back..."
 | 
				
			||||||
 | 
					            # FIXME: continue here
 | 
				
			||||||
 | 
					            # tar, cp, pax?
 | 
				
			||||||
 | 
					            # - copy if not existing
 | 
				
			||||||
 | 
					            # fail (abort whole recursive run) if existing
 | 
				
			||||||
 | 
					            # 
 | 
				
			||||||
 | 
					            # iterate over all new objects and copy each back?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         else
 | 
				
			||||||
 | 
					            # Be nice, warn user if manifests exists, but is not executable
 | 
				
			||||||
 | 
					            if [ -f "${manifest}" ]; then
 | 
				
			||||||
 | 
					               echo "Warning ${manifest} is not executable"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					         fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
         touch "${object}/$__cdist_object_finished"
 | 
					         touch "${object}/$__cdist_object_finished"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         # At least one more run needed
 | 
				
			||||||
 | 
					         __cdist_object_created_new=1
 | 
				
			||||||
      fi
 | 
					      fi
 | 
				
			||||||
   done < "$__cdist_tmp_file"
 | 
					   done < "$__cdist_tmp_file"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#    # FIXME past 1.0: allow multi level ids (/example/id instead of example_id only)
 | 
					 | 
				
			||||||
#    # OUTER LOOP NEEDED IF GOING OVER ALL OBJECTS WITH FIND?
 | 
					 | 
				
			||||||
#    for type in *; do
 | 
					 | 
				
			||||||
#       cd "$__cdist_object_dir/$type"
 | 
					 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
#       # find all objects (every object has the source recorded)
 | 
					 | 
				
			||||||
#       find . -name "$__cdist_object_source" > "$__cdist_tmp_file"
 | 
					 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
#       while read object; do
 | 
					 | 
				
			||||||
#          echo "Running object ${type}/${object} ..."
 | 
					 | 
				
			||||||
#       done < "$__cdist_tmp_file"
 | 
					 | 
				
			||||||
#    done
 | 
					 | 
				
			||||||
#    
 | 
					 | 
				
			||||||
#    # FIXME: abort on real case only :-)
 | 
					 | 
				
			||||||
#    __cdist_object_ran_all=1
 | 
					 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
exit 0
 | 
					exit 0
 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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}"
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue